优酷定制 SDK 隐私与请求配置

适用于本仓库 SDK 6.5.1。API 以所安装版本的 framework 公开头为准。

接入概览

先在广告平台取得当前应用、优酷渠道及相应形式的广告位 ID,并确认 Bundle ID 等应用信息已经配置。示例广告位只用于联调,正式接入须换成分配给自己应用的广告位。

SDK 无需单独创建全局实例。宿主完成自己的隐私告知、取得相应同意后,再进行配置和广告请求:

#import <IFLYADLib/IFLYADLib.h>

// 在宿主完成隐私流程后调用;值应来自用户的实际选择。
- (void)configureAdvertisingWithPersonalizedEnabled:(BOOL)enabled {
    [IFLYAdConfig setPersonalizedEnabled:enabled];
    [IFLYAdConfig setLogEnabled:NO];
}

setPersonalizedEnabled: 只记录状态,不改变 IDFA、CAID、UA 等请求字段,也不改变填充、点击或监测行为。它不替代隐私同意、ATT 或宿主的数据处理控制。需要限制采集或传参时,宿主仍须执行对应业务逻辑。

iOS 14 及以上如需使用 IDFA,先在 App 的 Info.plist 中设置符合实际用途的说明,再由宿主在适当时机申请 ATT:

<key>NSUserTrackingUsageDescription</key>
<string>用于获取广告标识符 IDFA,以便请求和展示相关广告。</string>

只有 ATT 为 authorized 时才读取或传入 IDFA。未授权时不要伪造标识符;授权完成后重新读取并用于后续请求,不复用授权前的配置。Simple 演示了此流程,见 AppDelegate.m 和 IFLYADUtil.m。宿主应结合SDK 隐私政策完成自己的隐私告知和 App Store Connect 隐私申报。

三种广告都支持 IFLYAdRequestConfig:

- (IFLYAdRequestConfig *)requestConfig {
    IFLYAdRequestConfig *config = [[IFLYAdRequestConfig alloc] init];
    config.requestTimeout = @5;
    config.appName = NSBundle.mainBundle.infoDictionary[@"CFBundleDisplayName"]
        ?: NSBundle.mainBundle.infoDictionary[@"CFBundleName"];
    config.appVersion = NSBundle.mainBundle.infoDictionary[@"CFBundleShortVersionString"];
    return config;
}

请求配置与展示配置分别传入。requestConfig 是本文示例的宿主辅助方法,可按应用实际情况调整:

字段用途
requestTimeout请求超时,单位秒;示例使用 5 秒
appName / appVersion当前宿主的名称与版本
settleType / bidFloor / pmpDeals平台约定的交易类型、底价和 PMP 配置,不应直接照搬示例到生产
idfa / caidList / userAgent按实际授权和平台要求提供,不填写虚构值
deepLinkDisabledYES 时禁用 DeepLink,使用落地页;不会修改请求参数

可左右滚动查看完整表格

普通请求可先使用上面的最小配置。交易参数仅在广告平台明确约定后设置。配置中的其他可选字段见 IFLYAdRequestConfig 公开头。广告对象可调用 loadAd,或在需要设置请求参数时调用:

[ad loadAdWithRequestConfig:[self requestConfig]];

点击、DeepLink、落地页和失败回退由 SDK 统一处理;历史 jumpDirectly 字段仅为兼容保留,不应用来控制业务跳转。