互动广告

前言

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

互动广告

交互式广告允许用户玩Html5游戏并获得广告商提供的各种优惠券。

步骤 1. 添加 Delegate

AdTiming SDK会触发多个事件来通知您交互式广告的活动。 要显示交互式广告,您需要创建一个全新的 AdTimingInteractiveAd 对象,设置其委托并加载广告。 以下代码段演示了如何使用 AdTimingInteractiveAd 类创建交互式广告对象,以及如何实现   AdTimingInteractiveAdDelegate   来接收交互式广告事件。

1.添加以下代码以创建 AdTimingInteractiveAd 对象,并添加您的Delegate来注册事件。 SDK将在 下面的部分 中将所有可能发生的事件通知委托 。

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

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

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

/// Invoked when Interactive Ad is available.
- (void)adtimingInteractiveChangedAvailability:(BOOL)available { 
     if(available){
        NSLog(@"InteractiveAd is Available");
     } 
}

/// Sent immediately when a interactive ad is opened.
- (void)adtimingInteractiveDidOpen:(AdTimingScene *)scene{
     NSLog(@"InteractiveAd is Open");
}

/// Sent immediately when a interactive ad starts to play.
- (void)adtimingInteractiveDidShow:(AdTimingScene *)scene{
     NSLog(@"InteractiveAd Start Play");
}

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

/// Sent after a interactive ad has been closed.
- (void)adtimingInteractiveDidClose:(AdTimingScene *)scene{
     NSLog(@"InteractiveAd Did Close");
}

/// Sent after a interactive ad has failed to play.
- (void)adtimingInteractiveDidFailToShow:(AdTimingScene *)scene withError:(NSError *)error{
     NSLog(@"InteractiveAd failed to play");
}
/// Invoked when interactive Ad is available.
func adtimingInteractiveChangedAvailability(_ available: Bool) {
    if available {
         print("InteractiveAd is Available");
    }
 }

 /// Sent immediately when a interactive Ad is opened.
func adtimingInteractiveDidOpen(_ scene: AdTimingScene) {
      print(@"InteractiveAd is Open");
 }

 /// Sent immediately when a interactive AD starts to play.
func adtimingInteractiveDidShow(_ scene: AdTimingScene) {
      print(@"InteractiveAd Start Play");
}

 /// Sent after a interactive Ad has been clicked.
func adtimingInteractiveDidClick(_ scene: AdTimingScene) {
      print(@"InteractiveAd Did Click");
 }

  /// Sent after a interactive ad has been closed.
func adtimingInteractiveDidClose(_ scene: AdTimingScene) {
      print(@"InteractiveAd Did Close");
}

 /// Sent after a interactive ad has failed to play.
func adtimingInteractiveDidFail(toShow scene: AdTimingScene, withError error: Error) {
      print(@"InteractiveAd failed to play");
 }

 

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

广告可用性

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

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

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

/// Check Interactive ad is Ready.
[[AdTimingInteractiveAd sharedInstance] isReady];
AdTimingInteractiveAd.sharedInstance().isReady()

 

步骤 3. 展示互动广告

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

 if ([[AdTimingInteractiveAd sharedInstance] isReady]) {
[[AdTimingInteractiveAd sharedInstance] showWithViewController:@"VIEW_CONTROLLER" scene:@"YOUR_SCENE_NAME"];
}
if AdTimingInteractiveAd.sharedInstance().isReady() {
AdTimingInteractiveAd.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.
[[AdTimingInteractiveAd sharedInstance] isCappedForScene:@"YOUR_SCENE_NAME"];
AdTimingInteractiveAd.sharedInstance().isCapped(forScene:"YOUR_SCENE_NAME")
这篇文章有帮助吗?
0 人中有 0 人觉得有帮助

评论

0 条评论

登录写评论。