Monetize

最后更新于

July 15, 2022

委托方法 — iOS

Chartboost SDK 的委托方法让您可以对集成具备高度控制 — 使用这些方法来量身定做您想要的广告体验。目录

概述

Chartboost SDK 的委托方法让您可以对集成具备高度控制。例如,您可以:

  • 在您的游戏试图加载插页式广告时记录调试信息
  • 阻止在用户第一次运行游戏时显示广告
  • 明确用户是点击广告抑或只是点击“关闭” — 然后据此进行不同操作
  • 阻止插页式广告或“更多应用”页面在可能干扰您的游戏的时间或位置出现

您可以在 Chartboost 框架的 Chartboost.h 头文件中查看 Chartboost iOS SDK 方法。您可以在包括在您的 SDK 下载中的示例项目里看到这些方法的使用示例。

SDK 配置方法

这些方法让您可以访问 Chartboost SDK 功能和设置:// 在指定 CBLocation 检查已缓存插页式广告。+ (BOOL)hasInterstitial:(CBLocation)location;// 在指定 CBLocation 检查已缓存“更多应用”页面。+ (BOOL)hasMoreApps:(CBLocation)location;// 在指定 CBLocation 检查已缓存激励式视频。+ (BOOL)hasRewardedVideo:(CBLocation)location;// 检查是否有任何视图可见+ (BOOL)isAnyViewVisible;// 设置以启用或禁用自动缓存功能 (默认启用)。*+ (void)setAutoCacheAds:(BOOL)shouldCache;// 获取当前自动缓存行为 (默认启用)。*+ (BOOL)getAutoCacheAds;// 设置 POST 正文发送的自定义标识符,用于所有 Chartboost API 服务器请求。+ (void)setCustomId:(NSString *)customId;// 获取当前 POST 正文发送的自定义标识符,用于所有 Chartboost API 服务器请求。+ (NSString *)getCustomId;// 判断 Chartboost SDK 是否应该在首次会话展示插页式广告。+ (void)setShouldRequestInterstitialsInFirstSession:(BOOL)shouldRequest;//  // 判断 Chartboost SDK 在准备显示“更多应用”界面时是否显示加载视图。+ (void)setShouldDisplayLoadingViewForMoreApps:(BOOL)shouldDisplay;// 控制 SDK 是否提前下载视频广告从而改善性能。默认启用。如禁用,会对 SDK 投放视频广告的能力造成严重影响!+ (void)setShouldPrefetchVideoContent:(BOOL)shouldPrefetch;// 用以控制全屏广告单元和状态栏的互动。(默认 CBStatusBarBehaviorIgnore)。+ (void)setStatusBarBehavior:(CBStatusBarBehavior)statusBarBehavior;(您可以在此了解常规 AutoCacheAds 设置和广告缓存。)

SDK 委托安装

使用任何委托函数前,您应当在 Chartboost 初始化代码中使用 delegate:self 来设置 Chartboost 委托:#import <Chartboost/Chartboost.h>#import <Chartboost/CBNewsfeed.h>#import "AppDelegate.h"@interface AppDelegate () @end@implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self initializeStoryBoardBasedOnScreenSize]; // 开始用户会话。 // 不可依赖任何用户操作或其他先前网络请求。 [Chartboost startWithAppId:@"YOUR_CHARTBOOST_APP_ID" appSignature:@"YOUR_CHARTBOOST_APP_SIGNATURE" delegate:self]; return YES;}

静态和视频插页式广告委托方法

// 在通过 Chartboost API 服务器请求插页式广告前调用。- (BOOL)shouldRequestInterstitial:(CBLocation)location;// 插页式广告在屏上显示前调用。- (BOOL)shouldDisplayInterstitial:(CBLocation)location;// 插页式广告在屏上显示后调用。- (void)didDisplayInterstitial:(CBLocation)location;// 在插页式广告从 Chartboost API 服务器加载// 并且本地缓存后调用。- (void)didCacheInterstitial:(CBLocation)location;// 在插页式广告尝试从 Chartboost API 服务器加载// 但失败后调用。 - (void)didFailToLoadInterstitial:(CBLocation)location withError:(CBLoadError)error;// 插页式广告消除后调用。- (void)didDismissInterstitial:(CBLocation)location;// 插页式广告关闭后调用。- (void)didCloseInterstitial:(CBLocation)location;// 插页式广告点击后调用。- (void)didClickInterstitial:(CBLocation)location;

“更多应用”委托方法

// “更多应用”页面在屏上显示前调用。- (BOOL)shouldDisplayMoreApps:(CBLocation)location;// “更多应用”页面在屏上显示后调用。- (void)didDisplayMoreApps:(CBLocation)location;// 在“更多应用”页面从 Chartboost API 服务器加载// 并且本地缓存后调用。- (void)didCacheMoreApps:(CBLocation)location;// “更多应用”页面消除后调用。- (void)didDismissMoreApps:(CBLocation)location;// “更多应用”页面关闭后调用。- (void)didCloseMoreApps:(CBLocation)location;// “更多应用”页面点击后调用。- (void)didClickMoreApps:(CBLocation)location;// 在“更多应用”页面尝试从 Chartboost API 服务器加载// 但失败后调用。- (void)didFailToLoadMoreApps:(CBLocation)location withError:(CBLoadError)error;

激励式视频委托方法

(有关 Chartboost 视频的更多信息,参见此页。)// 成功预先提取视频后调用。- (void)didPrefetchVideos;// 激励式视频在屏上显示前调用。- (BOOL)shouldDisplayRewardedVideo:(CBLocation)location;// 激励式视频在屏上显示后调用。- (void)didDisplayRewardedVideo:(CBLocation)location;// 在激励式视频从 Chartboost API 服务器加载// 并且本地缓存后调用。- (void)didCacheRewardedVideo:(CBLocation)location;// 在激励式视频尝试从 Chartboost API 服务器加载// 但失败后调用。- (void)didFailToLoadRewardedVideo:(CBLocation)location withError:(CBLoadError)error;// 激励式视频消除后调用。- (void)didDismissRewardedVideo:(CBLocation)location;// 激励式视频关闭后调用。- (void)didCloseRewardedVideo:(CBLocation)location;// 激励式视频点击后调用。- (void)didClickRewardedVideo:(CBLocation)location;// 在激励式视频观看完毕,用户可获得奖励时调用- (void)didCompleteRewardedVideo:(CBLocation)location withReward:(int)reward;// 实施后会进行通知,如果视频将于 // 指定 CBLocation 的屏幕上播放。您可以接着进行关闭音乐和音效等操作。- (void)willDisplayVideo:(CBLocation)location;

Banner 横幅广告的委托方法

// 当执行完缓存命令时调用,无论缓存结果成功或者失败。
- (void)didCacheAd:(CHBCacheEvent *)event error:(nullable CHBCacheError *)error

// 当执行 showFromViewController: 命令时,在广告展示之前调用。
- (void)willShowAd:(CHBShowEvent *)event error:(nullable CHBShowError *)error;

// 当执行 showFromViewController: 命令展示广告后调用, 无论广告是否已正常展示或者展示过程中出现错误都会调用。
- (void)didShowAd:(CHBShowEvent *)event error:(nullable CHBShowError *)error;

// 当用户点击广告,需要执行自定义的验证逻辑时调用。自定义验证逻辑需要在 confirmationHandler 函数里实现。
- (BOOL)shouldConfirmClick:(CHBClickEvent *)event confirmationHandler:(void(^)(BOOL))confirmationHandler;

// 当用户点击 Banner 广告时调用。
- (void)didClickAd:(CHBClickEvent *)event error:(nullable CHBClickError *)error;<

// 当执行完自定义验证逻辑时调用,无论点击事件是否确认通过或者被忽略都会调用此函数。
- (void)didFinishHandlingClick:(CHBClickEvent *)event error:(nullable CHBClickError *)error;详细的 Banner 广告代理函数请参考 此页

▲ Back to top

其他委托方法

// App Store 工作表消除后,显示内嵌应用工作表时调用。- (void)didCompleteAppStoreSheetFlow;// 在点击发生后而用户未转至 App Store 时调用- (void)didFailToRecordClick:(CBLocation)location withError:(CBClickError)error;//SDK 成功初始化,视频预提取完成后调用- (void)didInitialize:(BOOL)status;

原生广告委托方法

// 在原生广告对象从 Chartboost API 服务器加载// 并且本地缓存后调用。- (void)didCacheInPlay:(CBLocation)location;// 在原生广告尝试从 Chartboost API 服务器加载// 但失败后调用。- (void)didFailToLoadInPlay:(CBLocation)location withError:(CBLoadError)error;

年龄限制方法

// 判断 Chartboost SDK 是否使用年龄限制进行阻拦。+ (void)setShouldPauseClickForConfirmation:(BOOL)shouldPause;// 在 Chartboost SDK 暂停点击操作,等待用户确认时调用。使用// 在您的游戏中实施年龄限制。- (void)didPauseClickForConfirmation;// 确认年龄显示是否通过。指定 Chartboost 在等待本调用多长时间 // 方可展示 iOS App Store 商店。+ (void)didPassAgeGate:(BOOL)pass;