本页目录

优推 YT SDK 生命周期与排错

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

接入概览

两种广告的 delegate 都是弱引用,回调在主线程触发。媒体应强持有广告对象,在主线程执行页面加载、展示和清理操作。

阶段接入方处理
ytifly_*AdDidLoad:响应解析成功,可以读取 bidInfo、hasVideoTemplate、isLandscapeTemplate;素材可能仍在下载
ytifly_*AdDidReady:素材已就绪;展示前仍需检查 ytifly_isAdValid 和当前页面状态
ytifly_*AdDidShow:广告已展示;与有效曝光分开记录
ytifly_*AdDidExpose:有效曝光回调,不要用加载或展示回调替代
点击与 didJumpWithSuccess:分别观察用户交互和跳转结果;落地页及商店关闭有各自回调
视频开始、暂停、恢复、完播仅视频素材触发;视频完播不应被直接当成广告关闭
didFailWithError:统一处理失败;播放、渲染细分回调按具体公开协议补充
关闭、跳过或不再使用按广告格式结束业务流程;清理时置空 delegate、调用 ytifly_destroy 并释放引用

可左右滚动查看完整表格

ytifly_destroy 可以重复调用,但已销毁实例不能重新加载。不要用固定延时替代 DidReady,不要对同一个实例重复展示。详细回调签名和可选方法以安装版本的 framework 公开头为准。

window 与 Scene

展示、落地页、外跳回流和曝光应归属广告的来源 window/Scene。没有来源时,仅在前台应用 Scene 唯一且明确时使用兜底。开屏 rootVC 须已经入窗;Scene 宿主的 customWindow 必须可见、尺寸有限且为正、已经关联 Scene,并与 rootVC.window 属于同一 Scene。它可以不是 key window,可以具有较高 windowLevel,也可以不设置 rootVC。输入无效时展示失败,修正后可重试。

常见问题

现象排查步骤
找不到模块或头文件确认已安装依赖、target 选择正确、CocoaPods 使用 .xcworkspace,并导入 YTIFLYADLib 伞头
链接时报重复符号检查是否同时安装了不同接入方式、通用版或其他定制版
方法找不到或运行时异常检查最终 App target 的 -ObjC 和 $(inherited) 是否保留
资源缺失或样式异常检查 YTAdvSDK.bundle 是否随依赖投递;手动接入时检查 Copy Bundle Resources
70204 无填充请求无广告返回;核对广告位、应用绑定、请求条件及投放状态,业务正常继续
70400 或 71005核对广告位是否合法、是否为空,以及是否匹配该 App 和广告形式
71003 或 71006检查网络、ATS 和超时预算;使用有间隔且次数有限的重试
已收到 DidLoad,仍不能展示等待 DidReady;检查素材下载错误和 ytifly_isAdValid
71406 / 71603插屏/开屏未就绪,等待有效的就绪实例
71407 / 71408 / 71409 / 71601广告过期、已使用或已关闭;清理旧实例并重新创建
71410 / 71604展示控制器不可用;检查前台状态、window 和页面转场
IDFA 为空检查系统 ATT 状态和用途说明,授权后重新读取;模拟器不能代替真实设备验证
已开启日志但看不到请求 JSON发布版 SDK 仅保留错误和诊断输出,日志开关不会恢复已裁剪的详细日志
HTTP 素材或落地页不可访问根据错误确认是否受 ATS 限制,再按实际需要配置

可左右滚动查看完整表格

日志与反馈

请通过双方约定的支持渠道提供 SDK 版本、iOS 与 Xcode 版本、安装方式、广告形式、复现步骤、错误码和必要的脱敏日志。可使用 [YTIFLYAdTool ytifly_sdkVersion] 获取实际 SDK 版本。

公开附件请去除 IDFA、CAID、完整 token、用户信息和含敏感参数的 URL。示例运行步骤、按钮行为和自查清单见 Simple 使用说明;许可证见 LICENSE。