委托方法 — 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;

其他委托方法

// 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;