在我的游戏中,我提示您同意使用Google's Consent SDK显示个性化广告。
获得同意后,将其保存为:
PACConsentInformation.sharedInstance.consentStatus = PACConsentStatusPersonalized;
然后,下次启动游戏时,在调用的方法中(加载了Consent之后),我将Consent的状态打印到控制台进行测试,如下所示:
NSLog(@"[Consent]Consent Status: %ld", PACConsentInformation.sharedInstance.consentStatus);
打印以下内容以显示“同意”状态,并且可以加载个性化广告:(2为“是”(已同意))
[Consent]Consent Status: 2
我的方法继续根据“同意”加载正确的广告,效果很好。
但是,在随机情况下,紧随上述NSLog
之后的以下代码似乎重新设置了我的同意:
[PACConsentInformation.sharedInstance
requestConsentInfoUpdateForPublisherIdentifiers:@[ _admob_Publisher_ID ]
completionHandler:^(NSError *_Nullable error) {
if (error) {
//update failed
} else {
NSLog(@"[Consent]Consent info update succeeded); //update succeeded
NSLog(@"[Consent]Consent Status: %ld", PACConsentInformation.sharedInstance.consentStatus);
//load correct ads based on Consent status
}}}];
当信息更新时(否则),同意状态以某种方式更改并重置为未知状态(0)。然后将其打印出来:
[Consent]Consent info update succeeded.
[Consent]Consent Status: 0
所以基本上我的方法运行:NSLog
,Completion Handler
,NSLog
...,并且在完成处理程序期间,它偶尔会重置PACConsentInformation.sharedInstance.consentStatus
。
这是为什么?为什么只有有时候呢?任何帮助或指导都将不胜感激,因为这会使“同意”状态从“是”随机重置为“未知”。