插页式广告

前言

在将广告单元集成到您的应用之前,您必须:

插页式广告

AdTiming插页式广告是一个全屏广告单元,通常在应用程序的生命周期内的自然过渡点投放。 我们支持静态和视频非页内广告。

步骤 1. 添加 Delegate

AdTiming SDK会触发多个事件来通知您广告活动。要向您的用户显示广告,您需要先设置其代表,然后再加载广告以接收广告状态。以下代码段演示了如何为 AdTimingInterstitial 对象配置Delegate并实现 AdTimingInterstitialDelegate 来接收广告事件。

1.添加以下代码,将Delegate添加到 AdTimingInterstitial 对象,并注册到接收事件。 SDK会将下面第2节中列出的所有可能的事件通知委托。

注意:这里我们使用“self”,这意味着回调函数是在当前对象中实现的。

[[AdTimingInterstitial sharedInstance] addDelegate:self];
AdTimingInterstitial.sharedInstance().add(self) 

2.在代码中实现以下回调函数,以在收到广告活动时处理广告逻辑。例如,当插页式广告准备就绪时, 调用 show 函数将广告投放给您的用户。

/// Invoked when interstitial video is available.
- (void)adtimingInterstitialChangedAvailability:(BOOL)available{
     if(available){
       NSLog(@"InterstitialAd is Available");
     }
}

/// Sent immediately when a interstitial video is opened.
- (void)adtimingInterstitialDidOpen:(AdTimingScene *)scene{
     NSLog(@"InterstitialAd is Open");
}

/// Sent immediately when a interstitial video starts to play.
- (void)adtimingInterstitialDidShow:(AdTimingScene *)scene{
     NSLog(@"InterstitialAd Start Play");
}

/// Sent after a interstitial video has been clicked.
- (void)adtimingInterstitialDidClick:(AdTimingScene *)scene{
     NSLog(@"InterstitialAd Did Click");
}

/// Sent after a interstitial video has been closed.
- (void)adtimingInterstitialDidClose:(AdTimingScene *)scene{
     NSLog(@"InterstitialAd Did Close");
}

/// Sent after a interstitial video has failed to play.
- (void)adtimingInterstitialDidFailToShow:(AdTimingScene *)scene withError:(NSError *)error{
     NSLog(@"InterstitialAd failed to play");
}
/// Invoked when interstitial video is available.
func adtimingInterstitialChangedAvailability(_ available: Bool) {
    if available {
         print("InterstitialAd is Available")
    }
 }

 /// Sent immediately when a interstitial video is opened.
func adtimingInterstitialDidOpen(_ scene: AdTimingScene) {
      print(@"InterstitialAd is Open")
 }

 /// Sent immediately when a interstitial video starts to play.
func adtimingInterstitialDidShow(_ scene: AdTimingScene) {
      print(@"InterstitialAd Start Play")
}

 /// Sent after a interstitial video has been clicked.
func adtimingInterstitialDidClick(_ scene: AdTimingScene) {
      print(@"InterstitialAd Did Click")
 }

 /// Sent after a interstitial video has been closed.
func adtimingInterstitialDidClose(_ scene: AdTimingScene) {
      print(@"InterstitialAd Did Close")
 }

 /// Sent after a interstitial video has failed to play.
func adtimingInterstitialDidFail(toShow scene: AdTimingScene, withError error: Error) {
      print(@"InterstitialAd failed to play")
 }

 

步骤 2. 检查广告可用性 (可选)

广告可用性

如果仅集成并成功启动了SDK,则AdTiming SDK会自动加载广告,供您在应用程序的生命周期中缓存“重播的视频广告”。通过正确实施 AdTimingInterstitialDelegate,您将通过 AdTimingInterstitialChangedAvailability 回调收到有关广告可用性的通知 。

- (void)adtimingInterstitialChangedAvailability:(BOOL)available{
    if(available){
       NSLog(@"InterstitialAd is Available");
    }
}
func adtimingInterstitialChangedAvailability(_ available: Bool) {
    if available {
       print("InterstitialAd is Available")
    }
 }

检查广告是否可用的另一种方法是直接调用 isReady 函数。 在第1步中调用添加代表”后,将通过 isReady 方法通知您插页式广告是否准备好展示。

/// Check Interstitial video is Ready.
[[AdTimingInterstitial sharedInstance] isReady];
AdTimingInterstitial.sharedInstance().isReady()

 

步骤 3. 显示插页式广告

强烈建议您在投放非页内视频广告之前,通过调用 isReady 方法来检查广告的可用性,如以下代码所示:

 if ([[AdTimingInterstitial sharedInstance] isReady]) {
     [[AdTimingInterstitial sharedInstance] showWithViewController:@"VIEW_CONTROLLER" scene:@"YOUR_SCENE_NAME"];
}
if AdTimingInterstitial.sharedInstance().isReady() {
    AdTimingInterstitial.sharedInstance().show(with: "VIEW_CONTROLLER", scene: "YOUR_SCENE_NAME")
}

如果sceneName参数为空或没有匹配上"开发者前台"配置的Scene Name,那么SDK会自动匹配到默认的Default_Scene,在事件回调中返回的Scene对象也是Default_Scene。

Scene是4.0版本新引入的一个新概念,用于标记应用中广告位置或场景,支持频次控制、用户激励的场景区分和数据统计。可以在开发者前台进行Scenes配置。

注意:场景是可选的,如果你不想使用它,只需忽略sceneName参数或使用值" "。

 

步骤 4. 频次和计数 (可选)

可以通过在限定的时间内限制投放的广告数量来使用场景上限和步调来改善应用的用户体验,您可以在放置设置中为选定场景配置上限和步调设置。

重要! 为确保您不会在展示位置上限时显示插页式视频按钮​​来提示用户观看广告,您必须调用以下方法来验证特定展示位置是否已达到其广告限制。

/// Indicates whether the scene has reached the display frequency.
[[AdTimingInterstitial sharedInstance] isCappedForScene:@"YOUR_SCENE_NAME"];
AdTimingInterstitial.sharedInstance().isCapped(forScene:"YOUR_SCENE_NAME")
这篇文章有帮助吗?
0 人中有 0 人觉得有帮助

评论

0 条评论

登录写评论。