1.接入须知

1.接入龙图iOSSDK的游戏及应用的iOS客户端开发者。
2.使用此文档内接口,需要先接入龙图iOSSDK(详情查看龙图iOSSDK文档,当前支持龙图官网最新版本)。
3.接入龙图iOSSDK后,需要配置优量汇SDK需要的依赖库。

注:本文为优量汇 iOS终端SDK接入教程,只涉及SDK的使用方法,默认读者已经熟悉Xcode开发工具的基本使用方法,以及具有一定的编程知识基础等。

1.0 开发要求


  • iOS 9.0 及以上版本

  • XCode 12 及以上版本

  • 1.1 申请你的AppID

    APPID:媒体 ID,是您在腾讯优量汇开发者平台创建媒体时获得的ID,这个ID是我们在广告网络中识别您应用的唯一ID。

    PlacementId:广告位 ID,是您在腾讯优量汇开发者平台为您的应用所创建的某种类型(Banner、开屏、插屏、原生)的广告位置的ID。

    1.2 下载SDK包和示例Demo

    下载对应demo

    1.3 开发环境配置

    1.3.1 framework导入

    需要引入的系统库
    库名称 SDK 备注
    AdSupport.framework
    CoreLocation.framework
    QuartzCore.framework
    SystemConfiguration.framework
    CoreTelephony.framework
    libz.tbd
    Security.framework
    StoreKit.framework
    libxml2.tbd
    AVFoundation.framework
    WebKit.framework

    说明:

    SystemConfiguration.framework、CoreTelephony.framework、Security.framework是为了统计app信息使用
    iOS9以后的版本,需要把libz.dylib替换成libz.tbd
    引入系统库的操作过程如下:
    在Xcode中选中工程名,在Target->Build Phases->Link Binary With Libraries中点击“+”,在弹出窗口输入库名称,出现后点击“Add”则将库引入到系统中。

    1.3.2 Build Setting设置

    在Target->Build Settings -> Other Linker Flags中添加-ObjC, 字母o和c大写。

    2.SDK初始化

    接入龙图BaseSDK初始化即可

    3 激励视频接入

    3.1加载视频文件

    接口说明

    1. /// 加载视频文件
    2. /// @param placementID 广告ID
    3. - (void)loadGDTVideoADView:(NSString *)placementID;

    接入方法

    1. [[LT_YLHSDK ShareInstance] loadGDTVideoADView:@"申请的广告ID"];

    3.2播放视频

    接口说明
    需要在回调lt_gdt_rewardVideoAdVideoDidLoad返回加载成功之后调用

    1. // 确认激励视频广告有效性之后,在合适的时机展示广告
    2. /// 播放视频
    3. /// @param viewController 控制器
    4. - (void)playVideo:(UIViewController *)viewController;

    接入方法

    1. [[LT_YLHSDK ShareInstance] playVideo:UIViewController];

    3.3 加载并播放视频

    接口说明

    1. /// 加载并播放视频
    2. /// @param placementID 广告ID
    3. /// @param viewController 控制器
    4. - (void)loadAndPlayGDTVideoADView:(NSString *)placementID viewController:(UIViewController *)viewController;

    接入方法

    1. [[LT_YLHSDK ShareInstance] loadAndPlayGDTVideoADView:@"申请的广告ID" viewController:UIViewController];

    3.4 广告的eCPM等级

    接口说明

    1. /**
    2. 返回广告的eCPM等级
    3. @return 成功返回一个包含数字的string,比如@"2"表示底价等级为2,@""或nil表示无权限或后台异常
    4. */
    5. - (NSString *)eCPMLevelGet;

    接入方法

    1. NSString *levelStr = [[LT_YLHSDK ShareInstance] eCPMLevelGet];

    3.4 广告的eCPM

    接口说明

    1. /**
    2. 返回广告的eCPM,单位:分
    3. @return 成功返回一个大于等于0的值,-1表示无权限或后台出现异常
    4. */
    5. - (int)eCPMGet;

    接入方法

    1. int level = [[LT_YLHSDK ShareInstance] eCPMGet];

    3.4 激励广告的类型

    接口说明

    1. /**
    2. * 激励广告的类型,需在lt_gdt_rewardVideoAdDidLoad回调后调用
    3. * 0,//激励视频
    4. * 1 //激励浏览
    5. */
    6. - (int)rewardAdTypeGet;

    接入方法

    1. int type = [[LT_YLHSDK ShareInstance] rewardAdTypeGet];

    3.4 视频时长

    接口说明

    1. /**
    2. * 当广告类型为 0 时,返回视频时长,单位 ms,当广告类型为1 时,返回0
    3. */
    4. - (float)videoDurationGet;

    接入方法

    1. float time = [[LT_YLHSDK ShareInstance] videoDurationGet];

    3.5 是否使用SDK内部对AVAudioSession设置的category及options

    接口说明

    1. /// 在播放音频时是否使用SDK内部对AVAudioSession设置的category及options,默认使用,若不使用,SDK内部不做任何处理,由调用方在播放视频时自行设置;
    2. ///SDK设置的category为AVAudioSessionCategoryAmbient,options为AVAudioSessionCategoryOptionDuckOthers
    3. /// @param enabled 是否使用
    4. - (void)enableDefaultAudioSessionYLHSetting:(BOOL)enabled;

    接入方法

    1. [[LT_YLHSDK ShareInstance] enableDefaultAudioSessionYLHSetting:YES];

    4 激励视频回调

    4.1 接入准备

    需接入并实现LT_Tencent_YLH_Delegate

    1. @interface XXXXXXXXX ()<LT_Tencent_YLH_Delegate>
    2. @end
    3. 注册代理
    4. [LT_YLHSDK ShareInstance].delegate = self;

    4.2 激励视频广告生命周期事件回调

    您可以实现全部或部分LT_Tencent_YLH_Delegate,以跟踪点击成功或者激励视频广告请求失败等广告生命周期事件。

    接口说明

    1. /**
    2. 广告数据加载成功回调
    3. @param rewardedVideoAd 回调信息,可能为空
    4. */
    5. - (void)lt_gdt_rewardVideoAdDidLoad:(NSString *)rewardedVideoAd;
    6. /**
    7. 视频数据下载成功回调,已经下载过的视频会直接回调
    8. @param rewardedVideoAd 回调信息,可能为空
    9. */
    10. - (void)lt_gdt_rewardVideoAdVideoDidLoad:(NSString *)rewardedVideoAd;
    11. /**
    12. 视频播放页即将展示回调
    13. @param rewardedVideoAd 回调信息,可能为空
    14. */
    15. - (void)lt_gdt_rewardVideoAdWillVisible:(NSString *)rewardedVideoAd;
    16. /**
    17. 视频广告曝光回调
    18. @param rewardedVideoAd 回调信息,可能为空
    19. */
    20. - (void)lt_gdt_rewardVideoAdDidExposed:(NSString *)rewardedVideoAd;
    21. /**
    22. 视频播放页关闭回调
    23. @param rewardedVideoAd 回调信息,可能为空
    24. */
    25. - (void)lt_gdt_rewardVideoAdDidClose:(NSString *)rewardedVideoAd;
    26. /**
    27. 视频广告信息点击回调
    28. @param rewardedVideoAd 回调信息,可能为空
    29. */
    30. - (void)lt_gdt_rewardVideoAdDidClicked:(NSString *)rewardedVideoAd;
    31. /**
    32. 视频广告各种错误信息回调
    33. @param rewardedVideoAd 回调信息,可能为空
    34. @param error 具体错误信息
    35. */
    36. - (void)lt_gdt_rewardVideoAd:(NSString *)rewardedVideoAd didFailWithError:(NSError *)error;
    37. /**
    38. 视频广告播放达到激励条件回调
    39. @param rewardedVideoAd 回调信息,可能为空
    40. */
    41. - (void)lt_gdt_rewardVideoAdDidRewardEffective:(NSString *)rewardedVideoAd;
    42. /**
    43. 视频广告视频播放完成
    44. @param rewardedVideoAd 回调信息,可能为空
    45. */
    46. - (void)lt_gdt_rewardVideoAdDidPlayFinish:(NSString *)rewardedVideoAd;

    接口示例

    1. - (void)lt_gdt_rewardVideoAd:(NSString *)rewardedVideoAd didFailWithError:(NSError *)error {
    2. NSLog(@"lt_gdt_rewardVideoAd %@",rewardedVideoAd);
    3. if (error.code == 4014) {
    4. NSLog(@"请拉取到广告后再调用展示接口");
    5. } else if (error.code == 4016) {
    6. NSLog(@"应用方向与广告位支持方向不一致");
    7. } else if (error.code == 5012) {
    8. NSLog(@"广告已过期");
    9. } else if (error.code == 4015) {
    10. NSLog(@"广告已经播放过,请重新拉取");
    11. } else if (error.code == 5002) {
    12. NSLog(@"视频下载失败");
    13. } else if (error.code == 5003) {
    14. NSLog(@"视频播放失败");
    15. } else if (error.code == 5004) {
    16. NSLog(@"没有合适的广告");
    17. } else if (error.code == 5013) {
    18. NSLog(@"请求太频繁,请稍后再试");
    19. } else if (error.code == 3002) {
    20. NSLog(@"网络连接超时");
    21. } else if (error.code == 5027){
    22. NSLog(@"页面加载失败");
    23. }
    24. NSLog(@"ERROR: %@", error);
    25. }
    26. - (void)lt_gdt_rewardVideoAdDidClicked:(NSString *)rewardedVideoAd {
    27. NSLog(@"lt_gdt_rewardVideoAdDidClicked 广告已点击:%@",rewardedVideoAd);
    28. }
    29. - (void)lt_gdt_rewardVideoAdDidClose:(NSString *)rewardedVideoAd {
    30. NSLog(@"lt_gdt_rewardVideoAdDidClose 广告已关闭 :%@",rewardedVideoAd);
    31. }
    32. - (void)lt_gdt_rewardVideoAdDidExposed:(NSString *)rewardedVideoAd {
    33. NSLog(@"lt_gdt_rewardVideoAdDidExposed 广告已曝光 :%@",rewardedVideoAd);
    34. }
    35. - (void)lt_gdt_rewardVideoAdDidLoad:(NSString *)rewardedVideoAd {
    36. NSLog(@"lt_gdt_rewardVideoAdDidLoad 广告数据加载成功 :%@",rewardedVideoAd);
    37. }
    38. - (void)lt_gdt_rewardVideoAdDidPlayFinish:(NSString *)rewardedVideoAd {
    39. NSLog(@"lt_gdt_rewardVideoAdDidPlayFinish 视频播放结束%@",rewardedVideoAd);
    40. }
    41. - (void)lt_gdt_rewardVideoAdDidRewardEffective:(NSString *)rewardedVideoAd {
    42. NSLog(@"lt_gdt_rewardVideoAdDidRewardEffective 播放达到激励条件%@",rewardedVideoAd);
    43. }
    44. - (void)lt_gdt_rewardVideoAdVideoDidLoad:(NSString *)rewardedVideoAd {
    45. NSLog(@"lt_gdt_rewardVideoAdVideoDidLoad 视频文件加载成功 :%@",rewardedVideoAd);
    46. }
    47. - (void)lt_gdt_rewardVideoAdWillVisible:(NSString *)rewardedVideoAd {
    48. NSLog(@"lt_gdt_rewardVideoAdWillVisible 视频播放页即将打开 :%@",rewardedVideoAd);
    49. }

    5 错误码

    3001 网络错误
    3003 手机无网络
    4001 初始化错误, 包括广告位为空、AppKey为空、ViewController
    为空
    4003 广告位错误
    4006 广告未曝光
    4007 设备不支持
    4008 设备方向不支持
    4009 开屏跳过按钮定义非法
    4010 开屏bottomView设置非法
    4011 请求广告超时
    4013 系统不支持,原生视频模板广告只支持 iOS 9 及以上系统
    4014 广告数据返回前尝试展示广告, 例如激励视频拉到广告后才可以调用展示接口
    4015 广告已经曝光过,不允许二次展示,请重新拉取
    4016 应用横竖方向与广告位支持方向不匹配
    4017 外部传入的VC无效
    4018 缓存文件在流程中被意外删除
    4019 开屏广告 rootViewController presentVC 被占用
    4020 window为空
    4021 appId 错误,未正确注册
    5001 后台数据错误
    5002 视频素材下载错误
    5003 视频素材播放错误
    5004 没匹配的广告,禁止重试,否则影响流量变现效果
    5005 广告请求量或者消耗等超过日限额,请第二天再请求广告
    5006 包名校验非法
    5009 广告请求量或者消耗等超过小时限额,请一小时后再请求广告
    5010 广告样式校验失败,请检查广告位与接口使用是否一致
    5012 广告过期,请重新拉取
    5013 广告拉取过于频繁,请稍后再试
    5014 视频广告视频和图片素材都下载错误
    5015 当前版本不出广告
    5016 JSON数据解析失败
    5017 adCount参数非法
    5018 广告位下线
    5019 视频时长超过设定时长
    5020 视频URL为空
    5021 广告已下线
    5022 VAST接入错误
    5024 接口组合错误
    6000 未知错误,联系腾讯广告商务同事协助排查