广告标识符[IDFA]使用不当(限制广告跟踪)

时间:2014-04-11 05:58:14

标签: ios xcode limit ads

我正在向应用商店提交ios游戏更新。

xcode显示以下错误: "不正确的广告标识符[IDFA]用法。您的应用包含广告标识符[IDFA] API,但您的应用不符合iOS中的限制广告跟踪设置。"

我没有改变任何有关我的广告设置的内容,并且我的应用的最新版本没有任何问题。

我一直试图找到过去20小时的解决方法,我开始变得疯狂。 我需要改变什么以及如何改变?请帮帮我!

6 个答案:

答案 0 :(得分:6)

我在对应用的更新中遇到了类似的错误。我没有使用任何广告,但确实有Facebook集成(需要AdSupport框架)。我相信,在网上搜索之后,Facebook会将广告ID用于自己的分析目的,即使我没有在我的应用中添加广告,通过xCode的验证和上传过程也会失败并显示错误“您的应用包含了广告标识符[IDFA] API ...“

我搜索并发现我需要下载Facebook SDK源代码,更新FBUtility.m以删除对adsID的引用,但事实上,我只需要:

1)下载最新SDK的源代码,我从这里开始:https://github.com/facebook/facebook-ios-sdk(我将zip文件从github下载到我的文档文件夹)

2)构建框架 - 打开终端。在命令提示符下使用cd文档,然后使用以下命令:sudo scripts / build_framework.sh,它将运行下载的Facebook SDK文件夹中脚本子文件夹中的build_framework.sh脚本

3)从Xcode项目中删除旧的FacebookSDK.framework并添加新的(在我的情况下,我导航到documents / facebook-ios-sdk / build&选择FacebookSDK.framework文件夹

4)存档项目,它应该(在我的情况下)上传

希望能帮助一路上的人 - 我已经在这里待了好几天!!

答案 1 :(得分:2)

您可以尝试更新最新版本的Admob,或在调用Admob之前检查[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled,因为Apple现在要求应用程序需要在用户设备中检查此设置。

答案 2 :(得分:1)

我遇到了同样的问题,并且能够通过删除AdMob广告并仅留下iAd来解决此问题。 我知道这不是一个完美的解决方案,但之后您至少应该能够上传您的应用。

答案 3 :(得分:0)

我遇到了同样的问题。 TapJoy是我的罪魁祸首。我删除了他们的SDK和提交的应用程序没有问题。

答案 4 :(得分:0)

Apple最近改变了他们的IDFA扫描程序。单击“准备上传”后,您不仅需要选中相应的复选框,而且您的代码(或您拥有的任何其他第三方库必须直接使用该类才能使用IDFA。

  

有人建议这样做:

     

“你可以通过用NSClassFromString(@”ASIdentifierManager“)将直接引用替换为ASIdentifierManager来实现这一点”

请勿使用此方法加载此类!新的扫描程序将专门针对此进行查找,如果找到它而不是直接引用 - Apple似乎认为跟踪标识符有一些奇怪的用法。我不能说我不同意这个决定。

要确切找到哪个库有问题可能并不容易。例如,最新的AdMob SDK直接使用该类,而不是问题的根源。

您可以找到哪个库是问题根源的一种方法是从项目中删除AdSupport.Framework并查看哪些库无法链接。这些库不是问题。看看您是否有其他广告库不要求您包含AdSupport.Framework - 这些很可能是罪魁祸首。

这听起来有点反直觉,但直接引用不是问题,该类的动态(弱)加载是。

希望这对某人有所帮助 - 我们正在把头发拉出来,直到找到问题的根源为止。

答案 5 :(得分:0)

现在一切都已达到正常状态。只需上传您的二进制文件,并将IDFA广泛分为两类:

发布商:您使用第三方广告网络库来展示广告。选择IDFA中的第一个选项 - > "在应用程序内投放广告"。自您展示广告以来,您就是发布商,但不要为自己的应用做广告。

广告客户:您使用第三方库来跟踪应用的转化情况,以及跟踪目标'在你的应用程序中您不能直接在自己的应用中展示广告。选择第二个& IDFA中的第3个选项 - > "将此应用安装归因于先前投放的广告"。 AND"将此应用程序中采取的操作归属于先前投放的广告"。

混合:您可以跟踪应用的转化次数,并在应用中展示广告。选择所有三个选项。