识别Admob的测试设备

时间:2019-09-18 20:25:55

标签: swift admob

我使用以下代码:

let request : GADRequest = GADRequest ()

request.testDevices = ["xxxxxxx",kGADSimulatorID]

但是我收到以下警告:

  

“ testDevices”已弃用:使用GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers。

我是否使用语法删除警告?

6 个答案:

答案 0 :(得分:4)

您应该使用此:

GADMobileAds.sharedInstance().requestConfiguration.testDeviceIdentifiers = ["YOUR IDENTIFIER PRINTED ON DEBUGGER"]

代替:

request.testDevices = ["YOUR IDENTIFIER PRINTED ON DEBUGGER"]

答案 1 :(得分:1)

使用语法删除警告:

GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers

答案 2 :(得分:1)

您根本不需要设置此设置。正如AdMob开发人员文档所述:

  

iOS模拟器会自动配置为测试设备。

来源:https://developers.google.com/admob/ios/test-ads#enable_test_devices

答案 3 :(得分:1)

快速解决方案

事实证明,可以通过计算MD5中的advertisingIdentifier来找到AdMob / GoogleAdManager deviceId。这样,您就可以在代码中检索并使用测试deviceId,而无需事先从控制台日志中获取设备的标识符。

为避免使用ObjC-Swift桥接标头(通过<CommonCrypto/CommonCrypto.h>获取MD5)的麻烦,我建议在CommonCrypto框架周围使用Swift包装器,例如:

使用上述框架(该框架向String添加了一个扩展属性以计算MD5哈希),这是查询以下内容的简单问题:

GADMobileAds.sharedInstance().requestConfiguration.testDeviceIdentifiers ?? []).contains(ASIdentifierManager.shared().advertisingIdentifier.uuidString.md5)

答案 4 :(得分:0)

这是对10623169回答的修改。

要获取可在“testDevices”中设置的当前设备的有效 ID,请获取其 MD5UIDevice.current.identifierForVendor?.uuidString

如果用户未授予跟踪权限,则 asIdentifier 值可能完全无效。但 UIDevice.current.identifierForVendor 是应用的有效 UUID,它将在启动后持续存在(但如果您删除应用并重新安装,则可能不会)。

答案 5 :(得分:-1)

如果您使用情节提要,然后在情节提要中创建视图,并指定横幅类,则您的广告将正常运行。