开始之前
在开始集成插屏广告之前,您需要先完成以下步骤
- 在 OpenMediation 开发者前台页面,创建开发者账号,添加应用,然后设置好您的‘Interstitial Ad’广告位,操作手册在 这里。
- 在 Android SDK下载与集成 指导下,将 SDK 添加到您的开发项目并完成了初始化操作。
- 如果要聚合第三方平台,您需要在完成本节的广告集成之后,参考 添加聚合网络 进行操作。
新版提示:全新2.0版本SDK的智能库存引擎自动加载广告,最简化集成开发工作!
在新版SDK中,开发者不需要调用loadAd方法进行激励视频、插屏广告和交叉推广广告的加载,智能库存引擎为您自动加载和缓存广告,通过初始化预加载、广告消耗补库存以及例行库存检查等机制,来确保库存中始终有广告可用。因此,新的SDK API接口会更加易于使用,在广告场景中可直接调用接口进行库存检查和广告展示;开发者可以更加关注于应用逻辑本身,而无需对广告的加载、缓存花费额外的精力。插屏广告
插屏广告是一种全屏展现的广告类型,通常用于app中自然的场景切换过程。OpenMediation SDK同时支持静态(图片)和动态(视频)两种形式的插屏广告类型。
InterstitialAd Formats:
Step 1. 设置插屏广告回调
SDK会触发一系列事件来通知应用程序插屏广告的活动,如广告库存状态、广告播放完成等事件,开发者可以通过事件来获知广告是否准备好,以及广告是否被正确的展示和点击。所以,设置和实现插屏广告回调Listener的接口方法,是使用插屏广告的必要操作。我们将通过代码片段来演示如何实现InterstitialAdListener接口来接收和处理插屏广告的回调事件。
下面的示例代码中列举了所有可能的插屏广告事件:
import com.openmediation.sdk.interstitial.InterstitialAd;
import com.openmediation.sdk.interstitial.InterstitialAdListener;
import com.openmediation.sdk.utils.error.Error;
import com.openmediation.sdk.utils.model.Scene;
...
InterstitialAd.setAdListener(new InterstitialAdListener() {
/**
* Invoked when the interstitial ad availability status is changed.
*
* @param - available is a boolean.
* True: means the interstitial ad is available and you can
* show the video by calling InterstitialAd.showAd().
* False: means no ad are available
*/
@Override
public void onInterstitialAdAvailabilityChanged(boolean available) {
// Change the interstitial ad state in app according to param available.
}
/**
* Invoked when the Interstitial ad view has opened.
* Your activity will lose focus.
*/
@Override
public void onInterstitialAdShowed(Scene scene) {
// Do not perform heavy tasks till the ad is going to be closed.
}
/**
* Invoked when the Interstitial ad is closed.
* Your activity will regain focus.
*/
@Override
public void onInterstitialAdClosed(Scene scene) {
}
/**
* Invoked when the user clicked on the Interstitial ad.
*/
@Override
public void onInterstitialAdClicked(Scene scene) {
}
/* Invoked when the Interstitial ad has showed failed
* @param - error contains the reason for the failure:
*/
@Override
public void onInterstitialAdShowFailed(Scene scene, Error error) {
// Interstitial ad show failed
}
});
注意:
- onInterstitialAdShowFailed回调中的参数error包含失败的原因信息,具体可以参考 Error Code 来获取更多信息和错误诊断。
Step 2. 展示插屏广告
检查广告可用
OpenMediation SDK智能库存引擎负责广告库存的维护,您只需完成SDK集成和初始化,SDK会自动加载广告。通过实现InterstitialAdListener接口,应用程序将会收到广告可用性变化的事件通知,onInterstitialAd AvailabilityChanged接口的唯一参数available指示当前广告库存状态,true表示当前库存中有一个或多个可用广告,false则意味着库存中没有任何可用的广告。
public void onInterstitialAdAvailabilityChanged(boolean available)
当然,您也可以通过直接调用isReady() 方法来检查广告库存状态,如下所示。
public boolean isReady()
展示广告
一旦收到 onInterstitialAdAvailabilityChanged 事件的true回调,您就可以调用showAd() 方法进行广告的展示。
public void showAd(String sceneName)
注意:
- 如果sceneName参数为空或没有匹配上“开发者前台”配置的Scene Name,那么SDK会自动匹配到默认的Default_Scene,在事件回调中返回的Scene对象也是Default_Scene。
- Scene是引入的一个新概念,用于标记应用中广告位置或场景,支持频次控制、用户激励的场景区分和数据统计。可以在开发者前台进行Scenes配置。
- Scene是可选功能,若无需要可忽略该参数,系统会自动将广告匹配到默认的Default_Scene。
但是我们并不建议这么做,Availability事件只有在广告可用性发生变化的时候才会产生,这并不一定符合应用设计的广告场景,而且有可能造成频繁的甚至连续的广告展示。这会给用户产生困扰,影响应用的使用体验。您应该根据应用中的广告场景设计来选择广告展示时机。
//if you would like to show ad right after it's was loaded
public void onInterstitialAdAvailabilityChanged(boolean available) {
if(available) {
InterstitialAd.showAd(sceneName)
}
}
警告:
- 在onInterstitialAdAvailabilityChanged 回调中展示广告可能会导致不可预见的行为。一般情况您不应这么做,除非在某些特定的场景并且对showAd方法的调用进行了必要的限制
在应用设计的广告场景中进行广告展示时,我们强烈建议您在进行广告展示之前,先通过调用isReady() 方法检查广告是否可用,如下所示:
//if you would like to show ad when it's required
if (InterstitialAd.isReady()) {
InterstitialAd.showAd(sceneName);
}
注意:
- 当您成功的完成步骤2,意味着广告已经展示成功。如果您想展示另外的广告,只需重复步骤2进行展示即可,不需要手动调用loadAd方法进行广告加载。
频次和步长
您可以使用频次和步长率控制来提升用户体验,它们可以控制指定时间范围内广告展示的次数。频次和步长的设置在前台的广告位设置中进行,我们提供基于广告场景(scene)的控制。
重要提示!为确保广告位被频次控制的情况下不会给用户展现激励广告的按钮,您务必在之前调用以下方法确认当前广告位场景是否达到了频次控制的限制。
InterstitialAd.isSceneCapped(sceneName);
完成!
现在您已经可以在应用中展示插屏广告了。
评论
文章评论已关闭。