iOS内容限制阻止admob初始化

时间:2018-07-31 10:40:16

标签: ios unity3d filter admob restrictions

我正在与Unity一起制作游戏,并根据他们的演练实施了Admob。我的代码本质上直接来自于它们提供的示例。在正常情况下,这些广告对于Android和IOS均正常运行。但是,特别是对于IOS,如果用户对该网站的内容有限制,则只能将默认网站限制为默认网站,那么我的游戏将无法正常播放。基本上,它的行为就像是我出现了空指针错误或类似的错误一样,即不可预测和损坏。

我要谈论的限制可以在“设置”->“常规”->“限制”->“网站”->“仅特定网站”中找到

此设置将允许的少数儿童友好网站列入白名单。如果有什么不同,我的游戏并不是专门针对孩子的。

在启用了此限制的情况下在设备上运行游戏时,xcode日志无休止地发出垃圾邮件,表明Web过滤器正在根据该URL检查用户设置: https://googleads.g.doubleclick.net/mads/static/sdk/native/sdk-core-v40.html ,显示列入白名单的网站,并说它不包括在白名单中。我不知道它是一遍又一遍地调用该函数,还是只是重复显示第一个调用的结果。无论哪种方式,我都可以肯定,这导致游戏出现故障,因为没有其他错误报告。

最初,我认为我可以尝试访问一个我知道不在白名单中的网站。如果不能,则应该知道已启用限制。但是,经过一些测试,我发现我可以请求没有白名单的其他URL。我在诸如Twitter和Facebook之类的网站上使用了内置的WWW类,但这不太可能使插件到达上面列出的URL,因此我不确定该从中学到什么。

我查看了导入的Unity插件的源代码以使广告正常工作,但是我无法找到它在哪里调用此url,或者为什么它似乎无限循环地调用它。我想我以为可以编辑它以防止它发生。

我也尝试更新插件,因为自从我第一次使这些广告开始运作已经有一段时间了。导入后,我遇到了一些与降级的原生广告类有关的错误,以及与当前使用的版本没有的其他冲突。我试图对其进行修复,但最终我放弃了并将其回滚。

在这一点上,我认为我已将问题缩小到初始化行-MobileAds.Initiallize()。如果我注释掉该行并测试游戏,即使启用了限制,它也可以正常工作。据我所知,由于限制而导致的任何问题都是因为这一行而发生的。

如果用户有这些限制,我可以不投放广告,但是我需要一种方法来找出这些限制是否已启用,然后再调用此初始化行。根据我的研究,没有用于检查用户设置的API,并且我进行的所有尝试检查这些限制是否到位的尝试都没有改变屏幕或xcode日志中的结果。

以前有人遇到过吗?如何检查是否启用了此限制?还是有其他方法可以处理这种情况?除了完全没有广告之外,我不确定如何进行此操作。任何帮助将不胜感激。

0 个答案:

没有答案