# 激励视频

激励视频具有强烈的互动性,已经成为移动广告行业的主流,它正在日益成为游戏开发者进行IAA变现的主要方式,越来越多的超休闲游戏开发者选择IAA而不是IAP。

激励视频广告的奖励一般是游戏内部的金币、能力值等,当用户完整的看完视频就可以获得。我们建议将激励视频放置在用户已经参与应用内购买,或者正在寻求应用内的奖励,如完成一个游戏关卡或充值节点。

Mint Mediation激励视频广告提供良好的激励体验,让用户的完整视频观看来获得虚拟的货币或奖励。本节介绍如何集成和应用激励视频广告。 图片

# 步骤 1. 设置激励视频回调Listener

SDK会触发一系列事件来通知应用程序激励视频广告的活动,如广告库存状态、广告播放完成、用户获得奖励等事件,开发者需要通过事件来获知广告是否准备好,以及是否需要给用户奖励。所以,设置和实现激励视频回调Listener的接口方法,是使用激励视频广告的必要操作。下面的代码片段演示了如何实现RewardedVideoListener 接口来接收和处理视频广告事件。

激励视频触发的所有事件都可以在下面代码中找到。

RewardedVideoAd.setAdListener(new RewardedVideoListener() {

	/**
	 * Invoked when the ad availability status is changed.
	 *
	 * @param - available is a boolean. 
	 *	True: means the rewarded videos is available and 
	 *           you can show the video by calling RewardedVideoAd.showAd().
	 *	False: means no videos are available
	 */
	@Override
	public void onRewardedVideoAvailabilityChanged(boolean available) {
	    // Change the rewarded video state according to availability in app.
            // You could show ad right after it's was loaded here
	}
	
	/**
	 * Invoked when the RewardedVideo ad view has opened.
	 * Your activity will lose focus.
	 */
	@Override
	public void onRewardedVideoAdShowed(Scene scene) {
	    // Do not perform heavy tasks till the video ad is going to be closed.
	}
	
	/**
	 * Invoked when the RewardedVideo ad is to be closed.
	 * Your activity will regain focus.
	 */
	@Override
	public void onRewardedVideoAdClosed(Scene scene) {
	// video Ad Closed
	}
	
	/**
	 * Invoked when the user clicked on the RewardedVideo ad.
	 */
	@Override
	public void onRewardedVideoAdClicked(Scene scene) {
	// video Ad Clicked
	}
	
	/** 
	 * Invoked when the video is completed and the user should be rewarded. 
	 * If using server-to-server callbacks you may ignore this events and wait 
	 * for the callback from the MintMediation server. 
	 */	
	@Override
	public void onRewardedVideoAdRewarded(Scene scene) {
	    // Here you can reward the user according to your in-app settings.
	}
	
    /* Invoked when the call to show a rewarded video has failed 
     * @param - error contains the reason for the failure:
     */
    @Override
    public void onRewardedVideoAdShowFailed(Error error) {
       // video Ad show failed
       // 
   }
})

WARNING

注意: onRewardedVideoAdShowFailed()回调中的Error参数包含失败的原因,参考错误码

# 步骤 2. 展示激励视频广告

广告可用检查

Mint Mediation SDK 会自动加载广告进行广告库存的维护,您只需正确的完成SDK集成和初始化。通过实现RewardedVideoListener接口,应用程序将会收到广告可用性变化的事件通知,通过 onRewardedVideoAvailabilityChanged 接口的available参数获取到当前广告是否可用。

public void onRewardedVideoAvailabilityChanged(boolean available)

当然,您也可以通过直接调用isReady(String scene) 方法来检查广告库存状态,如下所示。

RewardedVideoAd.isReady(scene);

展示广告

一旦收到onRewardedVideoAvailabilityChanged 事件的true回调,您就可以调用showAd() 方法进行广告的展示。当然我们并不建议这么做,Availability事件只有在广告可用性发生变化的时候才会产生,这并不一定符合应用设计的广告场景,而且有可能造成频繁的甚至连续的广告展示,这会给用户产生困扰,影响应用的使用体验。您应该根据应用中的广告场景设计来选择广告展示时机。

// 您可以在广告可用的时候马上展示广告,但我们并不建议这么做
public void onRewardedVideoAvailabilityChanged(boolean available) {
	if(available) {
		RewardedVideoAd.showAd(scene);
   }
}

WARNING

在 onRewardedVideoAvailabilityChanged 回调中展示广告可能会导致不可预见的行为。一般情况您不应这么做,除非在某些特定的场景并且对showAd方法的调用进行了必要的限制。

如果您只是想在需要的情况下(应用设计的广告场景)进行广告展示,请先通过调用isReady() 方法检查广告是否可用,这是我们建议的方式:

// 您可以在任何需要的时候展示广告
if (RewardedVideoAd.isReady(scene)) {
  RewardedVideoAd.showAd(scene);
}

WARNING

注意: 当您成功的完成步骤2,意味着广告已经展示成功。如果您想展示另外的广告,只需重复步骤2进行展示即可,不需要手动调用loadAd方法进行广告加载。
如果您聚合了AdMob广告,您需要确保对isReady 和 showAd 方法的调用必须在主线程中进行。

频次和频率

您可以使用频次和频率控制来提升用户体验,它们可以控制指定时间范围内广告展示的次数。频次和频率的设置在前台的广告位设置中进行,我们提供基于scene的场景控制.

WARNING

重要提示! 为确保广告位被频次控制的情况下不会给用户展现激励的按钮,您务必在之前调用以下方法确认当前广告位场景是否达到了频次控制的限制。

RewardedVideoAd.isSceneCapped(scene);

# 步骤 3. 奖励用户

用户完整的看完广告视频后,SDK会触发onRewardedVideoAdRewarded 事件. 所以您的RewardedVideoListener 会收到该事件,然后就可以给用户进行奖励。

所以,请务必确保设置了listener并实现了onRewardedVideoAdRewarded 回调方法来处理用户奖励。

服务端回调

Mint Mediation SDK支持激励视频广告的服务端回调,开发者需要设置一个私有的回调地址(Callback URL,如下图所示),并指定信息用于验证Mint Mediation向回调地址发送的激励回调,因此Mint Mediation需要在回调中带上这个验证信息。验证信息由开发者调用SDK的setExtId()方法写入,在产生激励的时候,SDK联系Mint Mediation服务器通知该设备获得奖励,并附带验证信息。Mint Mediation服务器验证后,再通过回调地址将奖励信息和验证信息发给开发者的服务器。由于用户设备不会直接向开发者服务器联系,该方法可以避免虚假的激励回调事件产生。

设置验证信息ExtId

如果您的激励视频广告需要服务端的交互,需要调用setExtId方法来设置用户验证信息。该方法可以基于scene设置不同的验证信息,以区分不同场景广告,实现按场景的奖励分配。由于设置的ExtId将用于验证激励的过程,因此该方法必须在showAd展示广告之前调用。

RewardedVideoAd.setExtId("scene", "Your Ext Id");

WARNING

注意: 如果您已经使用了激励插屏广告,并且调用了setExtId设置验证信息,您仍然需要对激励视频广告单独设置验证信息ExtId。

配置激励视频广告服务端回调地址

开发者需要在广告位的高级设置(Advanced settings)中设置激励视频广告的服务端回调地址(Callback URL),如下图所示。 图片

回调地址格式

回调地址采用正则表达式格式,开发者可以设置自定义的变量名称,变量的值由ExtId写入。

http://yourendpoint.com?variable_name_you_define={content}

{content} – 验证信息,由开发者在SDK客户端设置的ExtId填入,用于验证激励的有效性。

完成!

现在您已经可以在应用中展示激励视频广告了。

# 接下来

您可以根据我们的集成文档来聚合其他广告类型,或者测试您的集成: