В моей игре я запрашиваю согласие на показ персонализированной рекламы с помощью Google's Consent SDK .
После получения согласия оно сохраняется следующим образом:
PACConsentInformation.sharedInstance.consentStatus = PACConsentStatusPersonalized;
Затем, когда игра запускается в следующий раз, в методе, который я вызываю (после загрузки Согласия), я печатаю статус Согласия на консоль для тестирования следующим образом:
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
.
Почему это?и почему это только иногда?Мы будем благодарны за любую помощь или руководство, так как это приводит к случайному сбросу статуса согласия с ДА на Неизвестный.