update: 优化了 AdjustService
Signed-off-by: huyufei <yufei.hu@castbox.fm>
parent
9395ad6027
commit
d22322ee26
|
|
@ -14,14 +14,11 @@ namespace Guru
|
||||||
private const string Version = "1.6.1";
|
private const string Version = "1.6.1";
|
||||||
private const string AdjustVersion = "4.38.0"; // Adjust SDK Version
|
private const string AdjustVersion = "4.38.0"; // Adjust SDK Version
|
||||||
private const string LOG_TAG = "[ADJUST]";
|
private const string LOG_TAG = "[ADJUST]";
|
||||||
private const double delayTime = 1; // 延迟启动时间(s)
|
private const double delayTime = 5; // 延迟启动时间(s)
|
||||||
|
|
||||||
private const string K_IAP_PURCHASE = "iap_purchase"; // 固定点位事件
|
private const string K_IAP_PURCHASE = "iap_purchase"; // 固定点位事件
|
||||||
private const string K_SUB_PURCHASE = "sub_purchase"; // 固定点位事件
|
private const string K_SUB_PURCHASE = "sub_purchase"; // 固定点位事件
|
||||||
|
|
||||||
private static Action<string, string, string> _onInitComplete;
|
|
||||||
private static Action<string> _onGetGoogleAdidHandler;
|
|
||||||
|
|
||||||
private string _googleAdId = "";
|
private string _googleAdId = "";
|
||||||
public string GoogleAdId // GPS = Google Play Service
|
public string GoogleAdId // GPS = Google Play Service
|
||||||
{
|
{
|
||||||
|
|
@ -45,8 +42,8 @@ namespace Guru
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool _isReady = false;
|
private bool _isReady = false;
|
||||||
public static bool IsReady => _isReady;
|
public bool IsReady => _isReady;
|
||||||
|
|
||||||
private static AdjustService _instance;
|
private static AdjustService _instance;
|
||||||
|
|
||||||
|
|
@ -73,7 +70,7 @@ namespace Guru
|
||||||
/// <param name="onDeeplinkCallback"></param>
|
/// <param name="onDeeplinkCallback"></param>
|
||||||
/// <param name="onGetGoogleAdIdCallback"></param>
|
/// <param name="onGetGoogleAdIdCallback"></param>
|
||||||
/// <param name="showLogs"></param>
|
/// <param name="showLogs"></param>
|
||||||
public void StartService(string appToken, string fbAppId = "", string firebaseId = "", string deviceId = "",
|
public async void Start(string appToken, string fbAppId = "", string firebaseId = "", string deviceId = "",
|
||||||
Action<string, string, string> onInitComplete = null,
|
Action<string, string, string> onInitComplete = null,
|
||||||
Action<string> onDeeplinkCallback = null,
|
Action<string> onDeeplinkCallback = null,
|
||||||
Action<string> onGetGoogleAdIdCallback = null,
|
Action<string> onGetGoogleAdIdCallback = null,
|
||||||
|
|
@ -85,16 +82,24 @@ namespace Guru
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_onInitComplete = onInitComplete;
|
// 需要在 Adjust.start 前设置 <安装归因参数>
|
||||||
_onGetGoogleAdidHandler = onGetGoogleAdIdCallback;
|
if (!string.IsNullOrEmpty(firebaseId))
|
||||||
|
{
|
||||||
|
Adjust.addSessionCallbackParameter("user_pseudo_id", firebaseId);
|
||||||
|
}
|
||||||
|
|
||||||
InstallEvent(firebaseId, deviceId); // 需要在 Adjust.start 前设置 <安装归因参数>
|
if (!string.IsNullOrEmpty(deviceId))
|
||||||
|
{
|
||||||
|
Adjust.addSessionCallbackParameter("device_id", deviceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化启动 Config
|
||||||
AdjustEnvironment environment = GetAdjustEnvironment();
|
AdjustEnvironment environment = GetAdjustEnvironment();
|
||||||
AdjustConfig config = new AdjustConfig(appToken, environment);
|
AdjustConfig config = new AdjustConfig(appToken, environment);
|
||||||
config.setPreinstallTrackingEnabled(true); // Adjust Preinstall
|
config.setPreinstallTrackingEnabled(true); // Adjust Preinstall
|
||||||
config.setLogLevel(GetLogLevel(showLogs));
|
config.setLogLevel(GetLogLevel(showLogs));
|
||||||
config.setDelayStart(delayTime); // 延迟 1s 启动 Adjust,保证 <安装归因参数> 成功注入
|
config.setDelayStart(delayTime); // 延迟 1s 启动 Adjust,保证 <安装归因参数> 成功注入
|
||||||
|
|
||||||
#if UNITY_ANDROID
|
#if UNITY_ANDROID
|
||||||
if (!string.IsNullOrEmpty(fbAppId)) config.setFbAppId(fbAppId); // 注入 MIR ID
|
if (!string.IsNullOrEmpty(fbAppId)) config.setFbAppId(fbAppId); // 注入 MIR ID
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -116,31 +121,29 @@ namespace Guru
|
||||||
Adjust.start(config); // 启动服务
|
Adjust.start(config); // 启动服务
|
||||||
|
|
||||||
// 异步加载AdId
|
// 异步加载AdId
|
||||||
FetchGoogleAdIdAsync();
|
FetchGoogleAdIdAsync(onGetGoogleAdIdCallback);
|
||||||
|
|
||||||
LogI(LOG_TAG, $"----- Start AdjustService[{Version}] AdjustVer:{AdjustVersion} -----");
|
LogI(LOG_TAG, $"----- Start AdjustService[{Version}] AdjustVer:{AdjustVersion} -----");
|
||||||
|
|
||||||
// 异步等待延时初始化执行成功
|
// 异步等待延时初始化执行成功
|
||||||
WaitInitCompleteAsync(delayTime * 2);
|
// TODO: 应该在此处类似 Firebase 的continueWithMainThread 的能力的一个函数
|
||||||
|
// TODO: 应该让以下的任务推迟 Ns 在主线程执行
|
||||||
|
await Task.Delay(TimeSpan.FromMilliseconds((delayTime + 0.1) * 1000));
|
||||||
|
_isReady = true;
|
||||||
|
onInitComplete?.Invoke(Adjust.getAdid(), Adjust.getIdfv(), Adjust.getIdfa());
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void WaitInitCompleteAsync(double delaySeconds)
|
|
||||||
{
|
|
||||||
await Task.Delay(TimeSpan.FromMilliseconds(delaySeconds * 1000));
|
|
||||||
_isReady = true;
|
|
||||||
_onInitComplete?.Invoke(Adjust.getAdid(), Adjust.getIdfv(), Adjust.getIdfa());
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 异步拉取 Google Ad Id
|
/// 异步拉取 Google Ad Id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void FetchGoogleAdIdAsync()
|
private void FetchGoogleAdIdAsync(Action<string> onGetGoogleAdIdCallback = null)
|
||||||
{
|
{
|
||||||
Adjust.getGoogleAdId(gid =>
|
Adjust.getGoogleAdId(gid =>
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(gid))
|
if (!string.IsNullOrEmpty(gid))
|
||||||
{
|
{
|
||||||
_googleAdId = gid; // 获取Google AD ID
|
_googleAdId = gid; // 获取Google AD ID
|
||||||
_onGetGoogleAdidHandler?.Invoke(_googleAdId); // 返回 GoogleAdid
|
onGetGoogleAdIdCallback?.Invoke(_googleAdId); // 返回 GoogleAdid
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -163,36 +166,6 @@ namespace Guru
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 关键属性上报
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 安装事件上报
|
|
||||||
/// 该事件只有第一次上报有效
|
|
||||||
/// pseudoId 为空时不上报
|
|
||||||
/// deviceId 为空时也不上报 (一般不会为空)
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="pseudoId"></param>
|
|
||||||
/// <param name="deviceId"></param>
|
|
||||||
private static void InstallEvent(string pseudoId, string deviceId)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(pseudoId))
|
|
||||||
{
|
|
||||||
Debug.LogWarning($">> Pseudo ID is Empty, skip install event reporting");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(deviceId))
|
|
||||||
{
|
|
||||||
Debug.LogWarning($">> Device ID is Empty, skip install event reporting");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Debug.LogWarning($"{LOG_TAG} --- addSessionCallbackParameter: user_pseudo_id:{pseudoId}, device_id:{deviceId}");
|
|
||||||
Adjust.addSessionCallbackParameter("user_pseudo_id", pseudoId);
|
|
||||||
Adjust.addSessionCallbackParameter("device_id", deviceId);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region 事件回调函数
|
#region 事件回调函数
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue