广告平台渠道 iOS 集成指南

本文档面向的客户为:在 Xinstall 管理后台建立 [ 广告平台渠道 ] 并需要进行统计的客户,是在原有的 iOS 集成 基础上进行的额外集成工作。

若您不使用 [ 广告平台渠道 ],则无需进行该文档中的额外集成工作,也能正常使用 Xinstall 提供的其他功能。

注意:根据目前已有的各大主流广告平台的统计方式,目前 iOS 端需要用户授权获取 IDFA 后才能正常进行 [ 广告平台渠道 ] 的统计,对该行为敏感的 App 请慎重进行该文档中说明的集成工作。

一、完成基础 iOS 集成

根据 《iOS集成》 文档完成基础 iOS 集成工作。

二、配置获取 IDFA 的声明

请求 IDFA 的权限与「获取相册访问」「获取定位」等的权限类似,也需要在 Info.plist 文件中配置一个权限作用声明,否则将导致 App 启动后马上闪退。配置项如下:

<key>NSUserTrackingUsageDescription</key>
<string>这里是针对获取 IDFA 的作用描述,请根据实际情况填写</string>

三、初始化

由于 Apple 从 iOS 14.5 开始,强制要求使用 AppTrackingTransparency 框架获取用户对 IDFA 的授权许可,而该框架只在 Xcode 12.0 及以上版本内提供,故强烈建议使用 Xcode 12.0 以上的版本进行开发!

否则开发的 App 将无法在 iOS 14.5 及以上版本正常获取 IDFA ,进而影响 [ 广告平台渠道 ] 的统计效果。

在 Xinstall SDK 进行初始化的文件中,按照如下代码引入 AdSupportAppTrackingTransparency 框架:

Objective-C
Swift
#import <AdSupport/AdSupport.h>
#if __has_include(<AppTrackingTransparency/AppTrackingTransparency.h>)
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#endif
import AdSupport
#if canImport(AppTrackingTransparency)
import AppTrackingTransparency
#endif

使用新的初始化方法进行 SDK 的初始化:

基础集成工作中的 [XinstallSDK initWithDelegate:self] 不需要再调用了

Objective-C
Swift
#if __has_include(<AppTrackingTransparency/AppTrackingTransparency.h>)
    if (@available(iOS 14, *)) {
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
            NSString *idfa = ASIdentifierManager.sharedManager.advertisingIdentifier.UUIDString;
            [XinstallSDK initWithDelegate:self idfa:idfa];
        }];
    } else {
        NSString *idfa = ASIdentifierManager.sharedManager.advertisingIdentifier.UUIDString;
        [XinstallSDK initWithDelegate:self idfa:idfa];
    }
#else
    NSString *idfa = ASIdentifierManager.sharedManager.advertisingIdentifier.UUIDString;
    [XinstallSDK initWithDelegate:self idfa:idfa];
#endif
#if canImport(AppTrackingTransparency)
    if #available(iOS 14.0, *) {
        ATTrackingManager.requestTrackingAuthorization { status in
            let idfa = ASIdentifierManager.shared().advertisingIdentifier.uuidString;
            XinstallSDK.initWith(self, idfa: idfa);
        }
    } else {
        let idfa = ASIdentifierManager.shared().advertisingIdentifier.uuidString;
        XinstallSDK.initWith(self, idfa: idfa);
    }
#else
    let idfa = ASIdentifierManager.shared().advertisingIdentifier.uuidString;
    XinstallSDK.initWith(self, idfa: idfa);
#endif

四、App Store 上架须知

若您的 App 需要上架 App Store ,请认真阅读本段内容。

  1. 如果您的 App 没有接入苹果广告(即在 App 中显示苹果投放的广告),那么在提交审核时,在广告标识符中,请按照下图勾选:

IDFA

  1. 在 App Store Connect 对应 App —「App隐私」—「数据类型」选项中,需要选择:“是,我们会从此 App 中收集数据”

AppStore_IDFA_1

在下一步中,勾选「设备 ID」并点击【发布】按钮:

AppStore_IDFA_2

点击【设置设备 ID】按钮后,在弹出的弹框中,根据实际情况进行勾选:

  • 如果您仅仅是接入了 Xinstall 广告平台而使用了 IDFA,那么只需要勾选:第三方广告
  • 如果您在接入 Xinstall 广告平台之外,还自行使用 IDFA 进行别的用途,那么在勾选 第三方广告 后,还需要您根据您的实际使用情况,进行其他选项的勾选

AppStore_IDFA_3

AppStore_IDFA_4

勾选完成后点击【下一步】按钮,在 “从此 App 中收集的设备 ID 是否与用户身份关联?” 选项中,请根据如下情况进行选择:

  • 如果您仅仅是接入了 Xinstall 广告平台而使用了 IDFA,那么选择 “否,从此 App 中收集的设备 ID 未与用户身份关联”
  • 如果您在接入 Xinstall 广告平台之外,还自行使用 IDFA 进行别的用途,那么请根据您的实际情况选择对应的选项

AppStore_IDFA_5

最后,在弹出的弹框中,选择 “是,我们会将设备 ID 用于追踪目的”,并点击【发布】按钮:

AppStore_IDFA_6

results matching ""

    No results matching ""