适用于 Android 的 Interstitial 集成
通过初始化广告单元、设置监听器、加载广告、检查广告可用性并在适当时刻显示广告,促进 Android app 中的插页式广告服务集成。
阅读时间7 分钟最后更新于 2 天前
Unity LevelPlay Interstitial 是一个全屏广告单元,通常在 app 生命周期中的自然过渡点投放。
先决条件
- 确保已将 LevelPlay SDK 正确集成到应用程序中。此处概述了集成。
- 确保使用 LevelPlay Initialization API 初始化 SDK。
- 在 LevelPlay 后台中找到 AdUnitID。
创建插页式广告对象
必须在收到 onInitSuccess 回调后执行插页式广告对象的创建。
该对象是可重用的实例,可以处理多个加载并在整个会话中显示。创建后,应将其用于加载和展示同一广告单元的广告服务。
对于更高级的实现,如果需要,可以创建多个插页式广告对象。
LevelPlayInterstitialAd mInterstitialAd = new LevelPlayInterstitialAd("adUnitId");
val mInterstitialAd = LevelPlayInterstitialAd("adUnitId")
设置 Interstitial 监听器
在代码中实现 LevelPlayInterstitialAdListener 以获取广告投放信息。
- 建议在加载插页式广告之前设置监听器。
- 每个插页式广告都应有自己的监听器实现。
- 回调在主线程上运行。
// Create the interstitial ad objectLevelPlayInterstitialAd mInterstitialAd = new LevelPlayInterstitialAd("adUnitId");mInterstitialAd.setListener(new LevelPlayInterstitialAdListener() { @Override public void onAdLoaded(LevelPlayAdInfo levelPlayAdInfo) { // Ad was loaded successfully } @Override public void onAdLoadFailed(LevelPlayAdError levelPlayAdError) { // Ad load failed } @Override public void onAdDisplayed(LevelPlayAdInfo levelPlayAdInfo) { // Ad was displayed and visible on screen } @Override public void onAdDisplayFailed(LevelPlayAdError levelPlayAdError, LevelPlayAdInfo levelPlayAdInfo) { // Ad fails to be displayed // Optional } @Override public void onAdClicked(LevelPlayAdInfo levelPlayAdInfo) { // Ad was clicked // Optional } @Override public void onAdClosed(LevelPlayAdInfo levelPlayAdInfo) { // Ad was closed // Optional } @Override public void onAdInfoChanged(LevelPlayAdInfo levelPlayAdInfo) { // Called after the ad info is updated.加载另一个插页式广告后可用,并具有更高的 CPM/速率 // Optional }});
// Create the interstitial ad object val mInterstitialAd = LevelPlayInterstitialAd("adUnitId")mInterstitialAd.setListener(object :LevelPlayInterstitialAdListener { 覆盖 fun onAdLoaded(levelPlayAdInfo:LevelPlayAdInfo) { // Ad was loaded successfully } 覆盖 fun onAdLoadFailed(levelPlayAdError:LevelPlayAdError) { // Ad load failed } 覆盖 fun onAdDisplayed(levelPlayAdInfo:LevelPlayAdInfo) { // Ad was displayed and visible on screen } 覆盖 fun onAdDisplayFailed(levelPlayAdError:LevelPlayAdError、levelPlayAdInfo:LevelPlayAdInfo) { // Ad fails to be displayed // Optional } 覆盖 fun onAdClicked(levelPlayAdInfo:LevelPlayAdInfo) { // Ad was clicked // Optional } 覆盖 fun onAdClosed(levelPlayAdInfo:LevelPlayAdInfo) { // Ad was closed // Optional } 覆盖 fun onAdInfoChanged(levelPlayAdInfo:LevelPlayAdInfo) { // Called after the ad info is updated.加载另一个插页式广告后可用,并具有更高的 CPM/速率 // Optional }})
LevelPlay 广告信息
LevelPlayAdInfo 参数包含有关加载的广告的信息。
加载 Interstitial Ad
要加载插页式广告,请使用 loadAd。
mInterstitialAd.loadAd();
mInterstitialAd.loadAd()
显示插页式广告
使用 LevelPlayInterstitialAdListener API 在收到 onAdLoaded 回调后显示插页式广告。
- 共享 Activity 是必需的。
- 如果使用放置,请在 showAd API 中通道放置/位置名称,如下文 Placements 部分所示。
- 广告成功展示给用户后,可以通过重复加载步骤加载另一个广告。
public void showInterstitialAd() { // Check that ad is ready if (mInterstitialAd.isAdReady()) { // Show ad mInterstitialAd.showAd(this); }}
fun showInterstitialAd() { // Check that ad is ready if (mInterstitialAd.isAdReady()) { // Show ad mInterstitialAd.showAd(this) }}
检查 Ad is Ready
为了避免展示失败,并确保广告可以正确展示,建议在调用 showAd API 之前使用以下 API。
isAdReady – 如果广告已成功加载且广告单元未设置上限,则返回 true,否则返回 false。
isPlacementCapped – 有效放置/位置被限制时返回 true。如果放置/位置无效或未设置上限,此 API 将返回 false。
// Check that ad is ready and that the placement is not capped if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) { mInterstitialAd.showAd(this, placementName);}
// Check that ad is ready and that the placement is not cappedif (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) { mInterstitialAd.showAd(this, placementName)}
广告位
我们支持在 LevelPlay 控制面板上设置插页的广告位节奏和上限。
如果为插页式广告服务设置了位置,请调用 showAd 方法为指定的放置/位置提供广告。
public void showInterstitialAdWithPlacement() { // Check that ad is ready and that the placement is not capped if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) { // Show ad with placement mInterstitialAd.showAd(this, placementName); }}
fun showInterstitialAdWithPlacement(placementName:字符串) { // Check that ad is ready and that the placement is not capped if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) { // Show ad with placement mInterstitialAd.showAd(this, placementName) }}
插页式广告服务的完整实现示例
public class InterstitialAdActivity extends Activity implements LevelPlayInterstitialAdListener { 私有变量 LevelPlayInterstitialAd mInterstitialAd; void createInterstitialAd() { mInterstitialAd = new LevelPlayInterstitialAd("adUnitId"); mInterstitialAd.setListener(this); } void loadInterstitialAd() { // Used to load or reload the ad mInterstitialAd.loadAd(); } void showInterstitialAd() { if (mInterstitialAd.isAdReady()) { mInterstitialAd.showAd(this); } } void showInterstitialAd(@NonNull String placementName) { // Check that ad is ready and that the placement is not capped if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) { mInterstitialAd.showAd(this, placementName); } } // LevelPlayInterstitialAdListener methods @Override public void onAdLoaded(@NonNull LevelPlayAdInfo adInfo) {} @Override public void onAdLoadFailed(@NonNull LevelPlayAdError error) {} @Override public void onAdDisplayed(@NonNull LevelPlayAdInfo adInfo) {} @Override public void onAdClosed(@NonNull LevelPlayAdInfo adInfo) {} @Override public void onAdClicked(@NonNull LevelPlayAdInfo adInfo) {} @Override public void onAdDisplayFailed(@NonNull LevelPlayAdError error, @NonNull LevelPlayAdInfo adInfo) {} @Override public void onAdInfoChanged(@NonNull LevelPlayAdInfo adInfo) {} }
类 InterstitialAdActivity:Activity(), LevelPlayInterstitialAdListener { } 私有变量 lateinit var mInterstitialAd:LevelPlayInterstitialAd fun createInterstitialAd() { mInterstitialAd = LevelPlayInterstitialAd("adUnitId") mInterstitialAd.setListener(this) } fun loadInterstitialAd() { mInterstitialAd.loadAd() } fun showInterstitialAd() { if (mInterstitialAd.isAdReady()) { mInterstitialAd.showAd(this) } } fun showInterstitialAd(placementName:字符串) { // Check that ad is ready and that the placement is not capped if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) { mInterstitialAd.showAd(this, placementName) } } // LevelPlayInterstitialAdListener methods 覆盖 fun onAdLoaded(adInfo:LevelPlayAdInfo) {} 覆盖 fun onAdLoadFailed(报错:LevelPlayAdError) {} 覆盖 fun onAdInfoChanged(adInfo:LevelPlayAdInfo) {} 覆盖 fun onAdDisplayed(adInfo:LevelPlayAdInfo) {} 覆盖 fun onAdDisplayFailed(报错:LevelPlayAdError、adInfo:LevelPlayAdInfo) {} 覆盖 fun onAdClicked(adInfo:LevelPlayAdInfo) {} 覆盖 fun onAdClosed(adInfo:LevelPlayAdInfo) {}}
LevelPlay Mediation 演示应用程序
Integration Demo 应用程序演示了如何在 app 中集成插页式广告单元 API。
验证您与我们的集成测试套件的集成。
后续步骤
请遵循我们的集成指南来集成其他插页式广告网络或配置其他广告格式: