支持 iOS 14

从 2021 年 1 月开始,Apple 限制 iOS 14 上对 IDFA 的访问。这意味着 Apple 将不再默认提供 IDFA。IDFA(广告商标识符)是用于广告归因和重定向的唯一设备 ID。

Yandex Mobile Ads SDK 使用 IDFA 通过展示更相关的广告来最大限度地提高发布商收入。

要接收 IDFA,应用开发人员现在必须明确请求用户的许可。您可以使用 AppTrackingTransparency 框架 来执行此操作。

它的工作原理类似于发送推送通知的请求。

请求访问 IDFA 的权限

启动应用时,使用 trackingAuthorizationStatus 属性检查权限状态。进一步的建议取决于用户是否禁用了对 IDFA 的访问。

用户没有禁用对 IDFA 的访问

该应用只能向用户显示一次 IDFA 访问权限请求,因此说服用户授予权限非常重要。

与用户互动的策略:

  1. 在显示系统对话框之前,显示一个对话框解释以下内容:

    • 具体请求是什么。
    • 它将如何使用。
    • 为什么用户应该允许访问。

    您可以在屏幕上添加按钮,例如 AllowNot Now

    备注

    如果用户同意在附带解释的应用对话框中授予权限,那么他们很可能会在系统对话框中表示同意。如果用户拒绝在附带解释的对话框中授予权限,您将能够再次显示此对话框。

    附带说明的示例对话框
  2. 通过 App Tracking Transparency 请求访问 IDFA。

用户禁用了对 IDFA 的访问

用户可能在系统对话框中拒绝授予 IDFA 访问权限。

与用户互动的策略:

  1. 在应用中,显示一个对话框解释以下内容:

    • 具体请求是什么。
    • 它将如何使用。
    • 为什么用户应该允许访问。

    您可以在屏幕上添加按钮,例如 AllowNot Now

    附带说明的示例对话框
  2. 通过 UIApplication.openSettingsUrlString 将用户重定向到设置。

    禁用访问权限的示例用户设置

通过 App Tracking Transparency 请求访问 IDFA 的权限

在 iOS 14 中,使用名为 App Tracking Transparency 的新框架来显示应用中的系统对话框。用户将在其中选择允许或拒绝对 IDFA 的访问权限。

备注

该系统对话框只能在每次安装应用时显示一次。如果用户选择 Ask App Not to Track,您将无法再次显示此应用的对话框。

  1. 您无法更改系统对话框,但可以向其添加附带解释的文本。为此,请将 NSUserTrackingUsageDescription 键添加到 Info.plist。例如:

    <key>NSUserTrackingUsageDescription</key>
    <string>This identifier will be used to deliver personalized ads to you.</string>
    

    Info.plist 中的文本将在系统对话框中向用户显示。在文本中,向用户解释应用请求使用 IDFA 的权限的原因。

  2. 要显示请求访问 IDFA 权限的对话框,请调用 requestTrackingAuthorization(completionHandler:) 方法。

    系统对话框示例
  3. 在加载广告之前,请等待收到回调。然后,Yandex Mobile Ads SDK 将能够在广告请求中使用 IDFA。

    import AppTrackingTransparency
    // ...
    
    func requestTrackingAuthorization() {
        ATTrackingManager.requestTrackingAuthorization { status in
            // 开始广告加载
    
        }
    }
    
  4. 要检查 App Tracking Transparency 状态,请使用 trackingAuthorizationStatus 属性。

Apple 文档中阅读了解有关 App Tracking Transparency 的更多信息。