From 98c025a28536230905567ef60604fda6312b1cd7 Mon Sep 17 00:00:00 2001 From: huyufei Date: Mon, 4 Mar 2024 12:19:48 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E6=9B=B4=E6=96=B0SDK=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7->=201.0.8,=20=E4=BF=AE=E5=A4=8DATT=20?= =?UTF-8?q?=E7=82=B9=E4=BD=8D=E4=B8=8A=E6=8A=A5=E7=9A=84=E5=88=A4=E5=AE=9A?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/Code/SDK/GuruSDK.Ads.cs | 52 +++++++++++++++++++++------------ Runtime/Code/SDK/GuruSDK.cs | 5 ---- package.json | 2 +- 3 files changed, 34 insertions(+), 25 deletions(-) diff --git a/Runtime/Code/SDK/GuruSDK.Ads.cs b/Runtime/Code/SDK/GuruSDK.Ads.cs index db9f637..d7a6173 100644 --- a/Runtime/Code/SDK/GuruSDK.Ads.cs +++ b/Runtime/Code/SDK/GuruSDK.Ads.cs @@ -65,33 +65,43 @@ namespace Guru if (_hasConsentCalled) return; _hasConsentCalled = true; + _attType = InitConfig.UseCustomConsent ? ATTManager.GUIDE_TYPE_CUSTOM : ATTManager.GUIDE_TYPE_ADMOB; // 点位属性确定 + bool enableCountryCheck = _appServicesConfig.DMACountryCheck(); string dmaMapRule = _appServicesConfig.DMAMapRule(); +#if UNITY_IOS + InitAttStatus(); // Consent 启动前记录 ATT 初始值 +#endif Debug.Log($"{Tag} --- StartConsentFlow ---"); - GuruConsent.StartConsent(OnConsentOver, dmaMapRule:dmaMapRule, enableCountryCheck:enableCountryCheck); + GuruConsent.StartConsent(OnGuruConsentOver, dmaMapRule:dmaMapRule, enableCountryCheck:enableCountryCheck); } - - private void OnConsentOver(int code) + /// + /// Guru Consent flow is Over + /// + /// + private void OnGuruConsentOver(int code) { -#if UNITY_IOS - InitAttStatus(); -#endif + // 无论状态如何, 都在回调内启动广告初始化 + StartAdService(); + + // 调用回调 Callbacks.ConsentFlow._onConsentResult?.Invoke(code); + +#if UNITY_IOS + CheckAttStatus(); // [iOS] Consent 启动后检查 ATT 初始值 +#endif + + // 内部处理后继逻辑 switch(code) { case GuruConsent.StatusCode.OBTAINED: case GuruConsent.StatusCode.NOT_AVAILABLE: // 已获取授权, 或者地区不可用, ATT 尚未启动 -// #if UNITY_IOS -// CheckAttStatus(); // 删除主动触发的逻辑 -// #endif + // TODO: 添加后继处理逻辑 break; } - - // 无论状态如何, 都在回调内启动广告初始化 - StartAdService(); } #endregion @@ -102,7 +112,7 @@ namespace Guru private static string _initialAttStatus; private static String _attType = "admob"; - + private static bool _autoReCallAtt = false; /// /// 显示系统的 ATT 弹窗 @@ -125,15 +135,19 @@ namespace Guru /// /// iOS 平台检查 ATT 状态 /// - private static void CheckAttStatus() => ATTManager.CheckStatus(ReportAttStatus); - + private static void CheckAttStatus(bool autoReCall = false) + { + _autoReCallAtt = autoReCall; + ATTManager.CheckStatus(ReportAttStatus); + } + private static void ReportAttStatus(string status) { - LogI($"{Tag} --- Get Att status: {status}"); + LogI($"{Tag} --- Get Att status:{status} att Type:{_attType} recall:{_autoReCallAtt}"); SetUserProperty(Analytics.ParameterATTStatus, status); // 当前的状态 if (!string.IsNullOrEmpty(_initialAttStatus) - && status != ATTManager.ATT_STATUS_NOT_DETERMINED - && _initialAttStatus != status) + && _initialAttStatus != status + && status != ATTManager.ATT_STATUS_NOT_DETERMINED) { // 上报点位: Analytics.AttResult(status, _attType); @@ -143,7 +157,7 @@ namespace Guru { case ATTManager.ATT_STATUS_NOT_DETERMINED: // ATT 状态未知, 请求弹窗 - RequestAttDialog(); + if(_autoReCallAtt) RequestAttDialog(); break; case ATTManager.ATT_STATUS_RESTRICTED: case ATTManager.ATT_STATUS_DENIED: diff --git a/Runtime/Code/SDK/GuruSDK.cs b/Runtime/Code/SDK/GuruSDK.cs index 7c09a13..7756933 100644 --- a/Runtime/Code/SDK/GuruSDK.cs +++ b/Runtime/Code/SDK/GuruSDK.cs @@ -279,12 +279,7 @@ namespace Guru } return null; } - - - - - #endregion #region Apple 审核流程逻辑 diff --git a/package.json b/package.json index 271362a..8854134 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "com.guru.unity.sdk", "displayName": "Guru SDK", - "version": "1.0.7", + "version": "1.0.8", "description": "Guru SDK for unity project", "unity": "2020.3", "author":{