iOS 14.5适配:所有 App 都必须使用 AppTrackingTransparency 框架来征得用户的许可,才能对其进行跟踪或访问其设备的广告标识符。
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/ )
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/14715686.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
已发布的 iOS 14.5、iPadOS 14.5 和 Apple tvOS 14.5 公开发行版本中,所有 App 都必须使用 AppTrackingTransparency 框架来征得用户的许可,才能对其进行跟踪或访问其设备的广告标识符。
苹果指出,除非开发者征得用户对启用跟踪权限的许可,否则设备的广告标识符值将全部为零,也将不允许跟踪用户。将 App 提交审核时,开发者必须在产品页面的“App Store 隐私信息”部分中,为其他任何形式的跟踪 (例如,按名称或电子邮件地址) 提供声明;同时,这些跟踪将仅在通过 AppTrackingTransparency 征得许可的情况下才能进行。根据 《App Store 审核指南》的准则,开发者还需要在系统提示中包含一个用途字符串以解释为什么 App 需要跟踪用户。这些要求将从 2021 年 4 月 26 日起应用于所有的 App。苹果提醒称,以获取用户的唯一标识或指纹为目的而对设备和使用数据进行收集的行为,仍将被视为违反 Apple Developer Program 许可协议。
简介
本文档列出了流量侧需要为iOS14.5升级所需要的修改,目的是请求用户授权,访问与应用相关的数据以跟踪用户或设备。详情请访问https://developer.apple.com/documentation/apptrackingtransparency
前提
使用优量汇iOS SDK 4.12.5及以上版本
获取 App Tracking Transparency 授权(弹窗授权获取IDFA)
如果想在流量中显示 App Tracking Transparency 授权来获取IDFA,需要在Info.plist中添加NSUserTrackingUsageDescription,描述获取IDFA的用途。例如:
<key>NSUserTrackingUsageDescription</key>
<string>该ID将用于向您推送个性化广告</string>
该描述将用于授权IDFA的弹窗提示中,如下所示:
弹窗小字文案建议:
- 获取标记权限向您提供更优质、安全的个性化服务及内容,未经同意我们不会用于其他目的;开启后,您也可以前往系统“设置-隐私 ”中随时关闭。
- 获取IDFA标记权限向您提供更优质、安全的个性化服务及内容;开启后,您也可以前往系统“设置-隐私 ”中随时关闭。
展示授权弹窗需要调用requestTrackingAuthorizationWithCompletionHandler:
方法。我们建议流量等待方法回调完成后处理广告相关逻辑,这样如果用户授权使用IDFA信息,优量汇iOS SDK可以使用IDFA进行广告请求。代码如下:
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/AdSupport.h>
...
- (void)requestIDFA {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
// 授权完成回调
// [self loadGDTAd];
}];
}
SKAdNetwork 接入
将 AdNetwork ID 写到 plist 文件中, 详见 https://developer.apple.com/documentation/storekit/skadnetwork/configuring_the_participating_apps
SKAdNetworkIdentifier : f7s53z58qe.skadnetwork
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2019-04-28 [Swift]LeetCode1036.逃离大迷宫 | Escape a Large Maze
2019-04-28 [Swift]LeetCode1035.不相交的线 | Uncrossed Lines
2019-04-28 [Swift]LeetCode1034.边框着色 | Coloring A Border
2019-04-28 [Swift]LeetCode1033. 移动石子直到连续 | Moving Stones Until Consecutive