我正在尝试测试GDPR合规性代码并尝试显示AdMob的同意书,但出现此错误:
同意信息更新失败。错误:错误域=同意代码= 1 “响应错误。找不到发布者标识符:ca-app-pub-0123456789012345”
我已三重检查,我的PublisherID是正确的,类似于“ pub-0123456789012345”。
当我查看AdMob帐户状态时,会看到
“您的帐户有效且信誉良好。”
我已经遵循Google的directions来接受用户对个性化广告的同意。我在美国,所以请使用此行:
PACConsentInformation.sharedInstance.debugGeography = .EEA
当我禁用此行时,不再显示上面的错误,而是下面的错误:
错误加载表单:错误:请求不在EEA中或未知。
我尝试改用此行,但未更改:
PACConsentInformation.sharedInstance.debugGeography = PACDebugGeography.EEA
我唯一的猜测是 ,原因是我的AdMob帐户位于美国,因此启用“ .EEA”时出现“找不到发布者ID”错误。但是,如果我的猜测是正确的,我该如何进行测试?
我正在模拟器和手机上进行测试。我无法在任何地方显示同意书。
我正在使用的代码如下:
// advertiseIDOfPhone and publisherID are constants defined elsewhere
PACConsentInformation.sharedInstance.debugIdentifiers = [advertiseIDOfPhone]
PACConsentInformation.sharedInstance.debugGeography = .EEA
PACConsentInformation.sharedInstance.requestConsentInfoUpdate(forPublisherIdentifiers: [publisherID])
{(_ error: Error?) -> Void in
if let error = error {
// Consent info update failed.
print("☢️ Consent info update failed. Error: \(error)")
} else {
print("☢️ Consent info updated.")
// Consent info update succeeded. The shared PACConsentInformation
// instance has been updated.
switch PACConsentInformation.sharedInstance.consentStatus {
case .nonPersonalized:
print("☢️ Personalized ads consent NOT given.")
case .personalized:
print("☢️ Personalized ads consent given.")
case .unknown:
print("☢️ Unknown consent.")
guard let privacyUrl = URL(string: "yourWebsiteURL"),
let form = PACConsentForm(applicationPrivacyPolicyURL: privacyUrl) else {
print("incorrect privacy URL.")
return
}
form.shouldOfferPersonalizedAds = true
form.shouldOfferNonPersonalizedAds = true
form.shouldOfferAdFree = true
form.load {(_ error: Error?) -> Void in
print("⚛️ Load complete.")
if let error = error {
// Handle error.
print("⚛️ Error loading form: \(error.localizedDescription)")
} else {
form.present(from: self) { (error, userPrefersAdFree) in
if error != nil {
// Handle error.
} else if userPrefersAdFree {
// User prefers to use a paid version of the app.
//buy the pro Version
}
}
}
}
default:
break
}
print("☢️ isRequestLocationInEEAOrUnknown: \(PACConsentInformation.sharedInstance.isRequestLocationInEEAOrUnknown)")
}
}
我的错误在哪里?我使用的代码好吗?
答案 0 :(得分:1)
在解决某个问题时,您可以使用Google Test Publisher ID:
pub-3940256099942544
我的帐户给我错误,但是我可以使用测试ID来实施和测试Consent SDK。只需在分发应用之前确保切换回ID即可。
答案 1 :(得分:0)
这似乎是一个known错误:
请注意,我们已经知道此问题,我们的工程团队 已经在制定解决方案。放心,我们一直在 注意这一点,我们将为您更新有关以下方面的任何新闻 这个问题。
关于Ziv Yves Sanchez移动广告SDK团队
我没想到Google会在大型产品的这种基本方面产生错误,但是不幸的是,我花了数小时研究这个问题,试图在某个地方找到我的错误...
答案 2 :(得分:0)
我也有同样的问题。
直到我在 https://fundingchoices.google.com 更新了我的设置。
进入网页,在左侧选择APP,进入并激活您正在使用的应用。