优酷定制 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 | 按实际授权和平台要求提供,不填写虚构值 |
deepLinkDisabled | YES 时禁用 DeepLink,使用落地页;不会修改请求参数 |
可左右滚动查看完整表格
普通请求可先使用上面的最小配置。交易参数仅在广告平台明确约定后设置。配置中的其他可选字段见 IFLYAdRequestConfig 公开头。广告对象可调用 loadAd,或在需要设置请求参数时调用:
[ad loadAdWithRequestConfig:[self requestConfig]];点击、DeepLink、落地页和失败回退由 SDK 统一处理;历史 jumpDirectly 字段仅为兼容保留,不应用来控制业务跳转。