using System.Collections.Generic; using UnityEngine; using BF.NativeCore.ThirdPlatform; using Newtonsoft.Json; using com.adjust.sdk; using AppsFlyerSDK; namespace BF { public class BFThirdReportSDKManager : MonoBehaviour { private ThinkingAnalyticsSdk TASdk = new ThinkingAnalyticsSdk(); private AppsFlyerSdk AFSdk = new AppsFlyerSdk(); private bool isInitAFAdRevenue = false; void Start() { Init(); } public void Init() { BFLog.Log("TASdk.Init"); TASdk.Init(); AFSdk.Init(); } // 设置账户id public void SetThinkingAnalyticsAccountId(string id) { TASdk.SetAccountId(id); AFSdk.SetTaAccountId(id); } public void InitAppsFlyerAdRevenue() { if (isInitAFAdRevenue) { return; } isInitAFAdRevenue = true; AppsFlyerAdRevenue.start(); } // 清除账户id public void ClearThinkingAnalyticsAccountId() { TASdk.ClearAccountId(); } // 数数科技上报 // lua端使用 public void PostThinkingAnalyticsEvent(string eventName, string data = "") { if (string.IsNullOrEmpty(data)) { TASdk.Track(eventName, null); } else { var properties = JsonConvert.DeserializeObject>(data); TASdk.Track(eventName, properties); } } // 数数科技上报 // c#端使用,只上报事件名 public void PostThinkingAnalyticsEventName(string eventName) { TASdk.Track(eventName, null); } // 数数科技上报 // c#端使用,上报事件名和参数 public void PostThinkingAnalyticsEventProperties(string eventName, Dictionary properties) { TASdk.Track(eventName, properties); } public void PostAppsflyerEvent(string eventName, string data = "") { if (string.IsNullOrEmpty(data)) { AFSdk.SendEvent(eventName, null); } else { var properties = JsonConvert.DeserializeObject>(data); AFSdk.SendEvent(eventName, properties); } } public void PostFireBaseEvent(string eventName, string data = "") { if (string.IsNullOrEmpty(data)) { return; } else { BFMain.Instance.SDKMgr.BFNativeSDKMgr.LogEvent(eventName, data); } } // 设置账户id public void PostAdjustSimpleTrackEvent(string key) { AdjustEvent adjustEvent = new AdjustEvent(key); // BFLog.Log("PostAdjustSimpleTrackEvent"); Adjust.trackEvent(adjustEvent); } public void PostAdjustRevenueTrackEvent(string key, double currency, string currencyCode) { AdjustEvent adjustEvent = new AdjustEvent(key); adjustEvent.setRevenue(currency, currencyCode); // BFLog.Log("PostAdjustRevenueTrackEvent"); Adjust.trackEvent(adjustEvent); } public void PostAdjustCallbackTrackEvent(string key, string data = "") { var properties = JsonConvert.DeserializeObject>(data); AdjustEvent adjustEvent = new AdjustEvent(key); foreach (var item in properties) { adjustEvent.addCallbackParameter(item.Key, item.Value); } // BFLog.Log("PostAdjustCallbackTrackEvent"); Adjust.trackEvent(adjustEvent); } public void PostAdjustPartnerTrackEvent(string key, string data = "") { var properties = JsonConvert.DeserializeObject>(data); AdjustEvent adjustEvent = new AdjustEvent(key); foreach (var item in properties) { adjustEvent.addPartnerParameter(item.Key, item.Value); } // BFLog.Log("PostAdjustPartnerTrackEvent"); Adjust.trackEvent(adjustEvent); } public void PostAdjustAdRevenueAppLovinMAX(double revenue, string networkName, string adUnitIdentifier, string placement) { var adRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourceAppLovinMAX); adRevenue.setRevenue(revenue, "USD"); adRevenue.setAdRevenueNetwork(networkName); adRevenue.setAdRevenueUnit(adUnitIdentifier); adRevenue.setAdRevenuePlacement(placement); Adjust.trackAdRevenue(adRevenue); } public void AdjustSetDeviceToken(string token) { Adjust.setDeviceToken(token); } public void LogAppsFlyerAdRevenue(int mediationNetwork, string monetizationNetwork, double eventRevenue, string data) { var properties = JsonConvert.DeserializeObject>(data); var mediationNetworkType = (AppsFlyerAdRevenueMediationNetworkType)mediationNetwork; AppsFlyerAdRevenue.logAdRevenue(monetizationNetwork, mediationNetworkType, eventRevenue, "USD", properties); } } }