本页目录

YTIFLYADLib iOS SDK

当前版本:6.5.1。本版已通过 CocoaPods、SwiftPM、手动集成的安装及 arm64 模拟器/设备架构构建验证;真机广告展示仍需在宿主 App 中联调。

本仓库提供面向 iOS 应用的优推(YT)定制广告 SDK,包含开屏和插屏,以及安装说明和 Objective-C 示例。

指南目录 · 运行示例 · 安装方式 · 隐私与请求配置 · 更新记录 · 排错 · 支持说明

三种接入示例

最新示例请从 main 分支源码 ZIP 下载并解压,或克隆 main;下面各 README 说明进入哪个目录及如何运行。接入自己的 App 请从安装指南开始,包含完整下载、资源来源、Xcode 配置和安装检查。

接入方式独立示例首次准备
CocoaPodsYTIFLYADLibSimple在示例目录运行 pod install
SwiftPMYTIFLYADLibSwiftPMSimple打开 workspace,解析远程 6.5.1 包
手动集成YTIFLYADLibManualSimple运行示例内 准备SDK.py,再打开 workspace

可左右滚动查看完整表格

三种示例均固定使用 SDK 6.5.1,具体运行步骤见各自 README。同一 App 只选择一种接入方式。

能力与接入身份

广告形式公开入口展示方式
开屏YTIFLYSplashAdSDK 渲染,图片或视频
插屏YTIFLYInterstitialAdSDK 渲染,半屏或全屏,图片或视频

可左右滚动查看完整表格

本包不提供 Banner、激励视频、自渲染信息流。所有格式均支持图片与视频,实际素材由广告位返回。

项目接入值
CocoaPods PodYTIFLYADLib
framework / 导入模块YTIFLYADLib
外置资源YTAdvSDK.bundle
链接要求静态 XCFramework;最终 App 保留 $(inherited) 和 -ObjC,选择 Do Not Embed
同一 App 的选择CocoaPods、SwiftPM、手动集成三选一;只安装一份 SDK 发行包

可左右滚动查看完整表格

类和协议使用 YTIFLY 前缀,公开方法和回调使用 ytifly_ 前缀;初始化方法和属性以公开声明为准。YT 不支持与通用版或其他定制版同时链接,前缀不同也不代表能够共存。

#import <YTIFLYADLib/YTIFLYADLib.h>

环境要求

项目要求
最低系统iOS 11.0
二进制接入能使用 XCFramework 的 Xcode
示例macOS、Xcode、CocoaPods;真机需配置自己的 Team 与 Bundle ID

可左右滚动查看完整表格

包清单版本不单独代表全部 Xcode 的二进制兼容性。运行示例后的检查方法与模拟器、真机验证边界见 Simple 指南;具体版本的构建及消费验证范围见本页版本验证说明与同版发布记录。

安装

推荐通过 CocoaPods 官方 trunk 安装精确版本,将 YourApp 替换为实际 target:

source 'https://cdn.cocoapods.org/'
platform :ios, '11.0'

target 'YourApp' do
  use_frameworks!
  pod 'YTIFLYADLib', '6.5.1'
end
pod install
open YourApp.xcworkspace

CocoaPods 自动投递 YTAdvSDK.bundle、传播 -ObjC 并处理 AdSupport 与弱链接 AppTrackingTransparency。直接使用 CocoaPods trunk 的 Pod 名称和固定版本。

手动集成的完整包资产名、资源和链接设置见安装方式。

最小使用流程

先取得分配给当前 App、渠道和格式的广告位,完成宿主隐私流程,再发起请求。首次接入可使用默认请求配置;交易参数仅在平台明确约定后填写,见请求配置。

强持有广告对象并设置代理 → 调用 ytifly_loadAd 或 ytifly_loadAdWithRequestConfig: → 等待 ytifly_*AdDidReady: → 在业务选定的展示时机检查 ytifly_isAdValid、前台状态和展示页面 → 调用 ytifly_showAdFromRootViewController:config: → 结束后清理。

DidLoad 只表示数据已返回。Ready 到达时若页面暂不可展示,保留实例,在后续业务时机重新检查有效性;失效后重新创建。插屏指南提供这种加载与展示分离的代码,Simple 提供可构建的加载、展示与销毁页面。

失败、无填充或放弃等待时让业务继续;开屏分别处理等待超时、失败、跳过和关闭,并保证进入后续页面只执行一次。完成或永久放弃后置空 delegate、销毁并释放实例;不要在广告临时覆盖页面触发的 viewDidDisappear: 中无条件销毁。详见生命周期与排错。

Simple 实际调用开屏、插屏公开 API,使用 Load、Show、Destroy 分别观察加载、业务时机展示与清理。

按广告形式接入

广告形式接入指南示例源码与覆盖范围
开屏开屏指南开屏页面
插屏插屏指南插屏页面

可左右滚动查看完整表格

服务端竞价与结果通知仅供已开通相应流程的媒体使用,普通接入直接使用上述加载流程。

隐私、许可与支持

ytifly_setPersonalizedEnabled: 仅记录状态,不过滤或改写 IDFA、CAID、UA、请求字段或广告行为,也不替代隐私同意与 ATT 授权。宿主控制请求时机与传入信息;iOS 14 及以上仅在 ATT authorized 时读取、传入 IDFA。详情见隐私与请求配置。

使用许可 · 安全问题私密报告 · 普通接入问题

反馈时提供 SDK/iOS/Xcode 版本、安装方式、广告形式、复现步骤与错误码;去除 IDFA、CAID、token、用户信息和敏感 URL。发布版日志仅保留错误与诊断,日志开关不会恢复已裁剪的请求/响应详情。

接入指南入口

完整主题索引见指南目录。