广告平台对接iOS集成指引

注意:此文档是针对使用了 渠道统计 功能中的 广告平台渠道 报表统计功能而提供的补充性文档

  • 首次集成SDK的,先按照iOS集成指南或者 后台【应用集成】->【iOS集成】文档集成完毕

  • 开启开关:进入应用后台,找到:“iOS集成”->“iOS应用配置”->“广告平台对接”,勾选并保存

一、相关代码

针对广告平台,为了精准地匹配到渠道,需要获取设备广告标识符(IDFA),因此需要添加额外的代码。

特别说明:
Apple 正式宣布推迟 iOS 14 隐私新规至 2021 年年初。经测试,在发布的 iOS 14 Beta 7 之后版本上,用户的 IDFA 将默认可用。只有当用户选择退出跟踪时,IDFA 才会正式失效。
也就是说,在苹果正式实行IDFA最新相关隐私政策前,App按照以前的方式还是可以正常获取到IDFA,暂时不需要用户授权。

目前推荐集成方式(避免授权弹窗)

1、引入头文件
在初始化方法所在文件,一般都在AppDelegate中

Object-C
Swift
#import <AdSupport/AdSupport.h>
import AdSupport

2、初始化代码
替换掉原先的初始化方法[OpenInstallSDK initWithDelegate:self];,使用新的API接口:

Object-C
Swift
NSString *idfaStr = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
[OpenInstallSDK initWithDelegate:self advertisingId:idfaStr];
let idfaStr = ASIdentifierManager.shared().advertisingIdentifier.uuidString
OpenInstallSDK.initWith(self, advertisingId: idfaStr);

  • 少数第三方平台需要手动导入 AdSupport.framework 库,不然编译时会报错

IDFA隐私新规正式推出前,修改为以下集成方式

(2021年初,具体时间依据官方通告为准)

1、引入头文件
在初始化方法所在文件,一般都在AppDelegate中

Object-C
Swift
#import <AdSupport/AdSupport.h>
#if defined(__IPHONE_14_0)
#import <AppTrackingTransparency/AppTrackingTransparency.h>//适配iOS14
#endif
import AdSupport
#if swift(>=5)
import AppTrackingTransparency//适配iOS14
#endif

2、在Info.plist文件中添加IDFA的权限申请描述(适配iOS14,必须添加,否则在iOS14系统中会崩溃)

<key>NSUserTrackingUsageDescription</key>
<string>请允许,以获取和使用您的IDFA</string>

3、初始化代码
替换掉原先的初始化方法[OpenInstallSDK initWithDelegate:self];,使用新的API接口:

Object-C
Swift
#if defined(__IPHONE_14_0)
    if (@available(iOS 14, *)) {
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
            NSString *idfaStr = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
            [OpenInstallSDK initWithDelegate:self advertisingId:idfaStr];//不管用户是否授权,都要初始化
        }];
    }
#else
    NSString *idfaStr = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    [OpenInstallSDK initWithDelegate:self advertisingId:idfaStr];
#endif
#if swift(>=5)
  if #available(iOS 14.0, *) {
      ATTrackingManager.requestTrackingAuthorization { (status) in
          let idfaStr = ASIdentifierManager.shared().advertisingIdentifier.uuidString
          OpenInstallSDK.initWith(self, advertisingId: idfaStr);//不管用户是否授权,都要进行初始化
      }
  }
#else
    let idfaStr = ASIdentifierManager.shared().advertisingIdentifier.uuidString
    OpenInstallSDK.initWith(self, advertisingId: idfaStr);
#endif

  • 少数第三方平台需要手动导入 AdSupport.framework 库,不然编译时会报错

二、上传IPA包,检查配置

  • 广告代码集成完毕后,需要导出安装包上传openinstall后台,openinstall会自动检查所有的应用配置工作

红色提示表明,当前选择的IPA包集成的SDK版本过低,且未检测到AdSupport.framework库

三、App Store上架指引

在App中获取了IDFA标识符,如果应用本身不包含广告的,提交上架App Store时需要做如下配置,请勾选2、3、4这三项:(避免审核被拒