本页目录

YS 仅开屏接入示例

本示例遵循公开仓 Demo 契约:固定 SDK 版本、独立 Podfile、可复现运行说明和脱敏问题反馈。
本工程使用 YSIFLYADLibSplash 6.5.1,演示图片与视频开屏的加载、展示、跳过、关闭和资源释放。依赖名称为 YSIFLYADLibSplash,代码仍导入 <YSIFLYADLib/YSIFLYADLib.h>。

仅开屏 SDK 与多格式 YSIFLYADLib 使用相同模块和资源,不可同时加入同一 App。完整安装说明见SDK 接入说明。

本示例的 Podfile 固定版本为 6.5.1;窗口与 Scene 的接入条件见广告加载与展示。

下载入口与版本

无需 Git 时,可下载 GitHub main 分支源码 ZIP,解压后进入 YSIFLYADLibSplash_iOS-main/YSIFLYADLibSimple/,再执行下方安装命令。不要只下载 .xcodeproj。使用 Git 的命令见下文;已有副本先确认本页与 Podfile 都固定 SDK 6.5.1。

依赖安装后核对 Podfile.lock 中 YSIFLYADLibSplash 为 6.5.1。版本找不到或锁文件冲突的处理见安装指南。

从下载到运行

准备 macOS、Xcode、CocoaPods 和可访问 CocoaPods trunk 和 TOS 下载地址的网络。最低部署目标为 iOS 11.0。使用模拟器可检查安装、链接和页面;真实广告填充、跳转和 ATT 请用真机联调。

git clone https://github.com/LJMcarryu/YSIFLYADLibSplash_iOS.git
cd YSIFLYADLibSplash_iOS/YSIFLYADLibSimple
pod install
open YSIFLYADLibSimple.xcworkspace
  1. 在 Xcode 选择 YSIFLYADLibSimple scheme 和模拟器或已连接的 iPhone。
  2. 真机运行前,在 App target 的 Signing & Capabilities 选择自己的 Team;必要时将 Bundle Identifier 改为自己的标识。
  3. 按下文替换广告位,确认后台授权的 App 信息与当前 App 一致,然后运行。
  4. 首页应显示 SDK Version: 6.5.1。示例的 Podfile 固定使用 6.5.1,示例页面可以随本仓库更新。

使用 CocoaPods 后始终打开 .xcworkspace。它自动加入 YSAdvSDK.bundle(含隐私清单)和 -ObjC;不需再手工嵌入静态 framework。其他安装方式见SDK 接入说明。

配置广告位与请求

打开 YSIFLYAdPrefixHeader.pch,将需要体验的宏替换为媒体获分配的广告位 ID。仓库内的示例 ID 不保证填充;图片、视频等结果以广告位配置和实际返回为准。

宏对应页面/选项
__SPLASH_NATIVE_AD_UNIT_ID__图片开屏
__SPLASH_VIDEO_AD_UNIT_ID__视频开屏

可左右滚动查看完整表格

公共请求参数在 YSIFLYADUtil.m 的 mediaSampleRequestConfig 中:示例超时为 5 秒,settleType = @1、bidFloor = @0.01、interactStatus = @1。这些是演示值,业务接入请按平台约定调整,勿将示例价格作为正式结算配置。App 名称与版本从宿主信息读取。

SDK 不要求额外 App ID 初始化。广告位须与媒体获授权的 App 和广告形式匹配。启动配置见 AppDelegate.m,首页入口见 ViewController.m。

隐私与网络设置

  • 示例在 App 激活后申请 ATT,并在每次请求时检查授权、过滤全零 IDFA。拒绝 ATT 时继续以空 IDFA 请求;不要为了取得 IDFA 重复弹窗。
  • 示例不包含生产 App 的隐私同意页面。接入自己的 App 时,应按用户授权和业务要求安排 SDK 使用时机;ysifly_setPersonalizedEnabled: 只记录状态,不会代替隐私流程或停止广告请求。
  • Info.plist 含 NSUserTrackingUsageDescription 和用于测试素材的 ATS 例外。生产 App 请使用准确的用途文案,并按实际网络需求收窄 ATS 配置。
  • 示例开启日志便于查看回调。上线前按需关闭 ysifly_setLogEnabled:,反馈问题时隐藏设备标识、Token 和业务敏感数据。

体验开屏

首页只有“开屏广告”入口,对应 YSIFLYSplashViewController.m。

  1. 选择“图片开屏”或“视频开屏”,点击 Load。每次加载都会清理旧对象并创建新实例。
  2. 日志出现 splashAdDidLoad 表示响应已解析。继续等待 splashAdDidReady;广告有效后 Show 才可点击。
  3. 点击 Show。示例使用 YSIFLYSplashAdConfig,展示倒计时与底部品牌区;视频初始静音,并显示静音按钮。
  4. 查看展示、曝光、点击、跳转、跳过和关闭回调。关闭后可再次加载;已展示的对象不能作为下一次广告机会复用。
  5. “检查状态”记录 ysifly_isAdValid 和公开竞价信息;Destroy 终止当前广告。退出页面会释放广告。

本例手动展示便于观察回调。实际启动页请由宿主协调隐私授权、广告请求与展示时机,并保留超时/失败后的主流程。SDK 不需要宿主再次 present 开屏控制器;将当前有效控制器传给 ysifly_showAdFromRootViewController:config: 即可。

图片与视频共用 YSIFLYSplashAd;是否返回视频以 hasVideoTemplate 和实际素材为准。示例底部品牌区由 bottomLogoView 创建,可参考其尺寸和布局方式换成自己的品牌内容。

如何确认接入成功

阶段可观察结果
安装pod install 成功,workspace 构建和运行通过
首页显示 SDK Version: 6.5.1,只有开屏入口
加载splashAdDidLoad 后出现 splashAdDidReady,Show 可点击
展示图片/视频可见,收到 splashAdDidShow;满足可见条件后收到曝光回调
关闭跳过或关闭后回到示例页面,能够发起下一次加载
失败处理断网、超时或无填充时记录错误,Show 不会启用,页面可操作
真机交互验证点击跳转与返回、前后台切换、视频声音及 ATT 拒绝/授权路径

可左右滚动查看完整表格

构建成功只证明依赖可以消费和链接。示例广告位、模拟器或当前请求无填充时,不代表安装错误;需使用媒体获分配的广告位在真机继续联调。

常见问题

现象检查方法
下载依赖失败检查 CocoaPods trunk、TOS 下载地址、代理和证书,按错误信息定位后重试
找不到 YSIFLYADLibSplash 头YSIFLYADLibSplash 是依赖/产品名,导入模块为 YSIFLYADLib;使用 workspace
重复符号或资源移除原多格式 YS 依赖及手工拷贝文件,只保留当前 SDK 和一份 YSAdvSDK.bundle
真机签名失败设置自己的 Team、Bundle Identifier 并确认设备可开发
Show 不可点击需收到 Ready 且实例有效;查看错误日志,不能仅凭 DidLoad 展示
广告无填充核对广告位、App 信息、开屏类型、后台授权与网络;不要循环无间隔重试
IDFA 为空未授权或拒绝 ATT 时为空是预期行为;授权后新请求会重新读取
视频或图标异常检查素材错误回调和 YSAdvSDK.bundle 是否被正确复制到 App
展示失败或黑屏确认当前控制器已位于有效 window、App 在前台;避免与其他模态展示冲突

可左右滚动查看完整表格

先查错误处理与反馈;仍需帮助时通过双方约定的支持渠道反馈,附 SDK/iOS/Xcode 版本、设备类型、复现步骤、错误码和脱敏日志。版本变化见更新记录。