开屏广告
开屏广告是一种特殊的广告形式,通过应用程序的初始屏幕盈利。用户可随时关闭这些广告,其设计是用户在前台开启应用程序时展示广告,而无论是在启动时还是从后台返回时。
本指南介绍将开屏广告集成到 React Native 应用的过程。 除了代码示例和说明之外,它还包含特定格式的建议以及指向其他资源的链接。
限制
开屏广告只能投放在垂直方向的应用程序中。对于水平方向,不会选择这种广告。
外观
开屏广告包含 Go to the app 按钮,该按钮向用户表明他们当前正在使用您的应用并可以关闭广告。以下是此广告格式的示例:
前提条件
- 按照 快速入门 中描述的 Yandex Mobile Ads React Native 插件集成步骤进行操作。
- 确保您拥有 最新版本的 Yandex Mobile Ads React Native 插件。如果您正在使用聚合,请更新到最新的 单一构建版本。
术语
- 冷启动:启动不在 RAM 中的应用,创建一个新的应用会话。
- 热启动:当应用在 RAM 中暂停时,将应用从后台模式切换到前台模式。
实施
集成开屏广告广告的关键步骤:
- 创建
AppOpenAdLoader
。 - 使用
AdRequestConfiguration
对象设置加载广告的参数。 - 加载
AppOpenAd
对象。 - 设置广告的回调函数。
- 使用
AppState.addEventListener('change', handleAppStateChange)
方法订阅应用状态更改事件,以便在应用开启时展示广告。 - 展示
AppOpenAd
对象。
关键步骤
-
创建
AppOpenAdLoader
。let loader = await InterstitialAdLoader.create() .catch((error) => { // 妥善处理错误 return; });
-
使用
AdRequestConfiguration
对象设置加载广告的参数。要创建AdRequestConfiguration
类实例,您需要来自 Partner Interface (adUnitId) 的广告版位 ID。您还可以在创建
AdRequestConfiguration
对象时,通过提供有关用户兴趣、页面上下文、位置和其他附加数据的信息来扩展广告请求参数。在广告请求中添加额外的上下文信息可以极大地提高广告质量。let adRequestConfiguration = new AdRequestConfiguration( 'R-M-XXXXXX-Y', // 在调试中,您可以使用 'demo-appopenad-yandex' '20', 'context-query', ['context-tag'], Gender.Female, new Location(55.734202, 37.588063) );
-
调用
loadAd
方法加载广告。let ad = await loader.loadAd(adRequestConfiguration) .then((ad) => { // 广告加载成功 return ad; }) .catch((error) => { // 妥善处理错误 return; });
-
设置广告的回调函数。
ad.onAdShown = () => { console.log('Did show'); }; ad.onAdFailedToShow = (error) => { console.log(`Did fail to show with error: ${JSON.stringify(error)}`); }; ad.onAdClicked = () => { console.log('Did click'); }; ad.onAdDismissed = () => { console.log('Did dismiss'); }; ad.onAdImpression = (impressionData) => { console.log(`Did track impression: ${JSON.stringify(impressionData)}`); };
-
使用
AppState.addEventListener('change', handleAppStateChange)
方法订阅应用状态更改事件,以便在应用开启时展示广告。当应用变为活跃状态时,调用
show()
方法展示广告。const handleAppStateChange = (nextAppState: string) => { if (nextAppState === 'active') { ad.show(); subscription.remove(); } }; const subscription = AppState.addEventListener('change', handleAppStateChange);
开屏广告集成的特点
- 广告可能需要较长的加载时间,如果广告尚未加载,应避免增加冷启动时间。
- 预加载广告,以便后续热启动展示使用。
- 不建议在应用启动时同时加载开屏广告和其他广告格式,因为应用可能正在下载必要的操作数据。这样做可能会导致设备和网络连接负载过高,从而延长广告加载时间。
- 如果
loadAd
方法返回错误,请勿再次尝试加载新广告。如果没有其他选项,请限制广告加载重试次数。如果有限制,这将有助于避免频繁出现失败的请求和连接问题。
测试开屏广告集成
使用演示广告单元进行广告测试
我们建议使用测试广告来测试开屏广告集成和应用本身。
为了保证为每个广告请求返回测试广告,我们创建了一个特殊的演示广告版位 ID。用它来检查您的广告集成。
演示广告单元 ID:demo-appopenad-yandex
。
重要
在商店中发布您的应用之前,请确保将演示广告版位 ID 替换为从 Partner Interface 获取的真实广告版位 ID。
您可以在 用于测试的演示广告单元 版块找到可用的演示广告版位 ID 列表。
测试广告集成
您可以使用 SDK 的内置分析器检查开屏广告集成。
该工具可确保您的开屏广告正确集成,并向日志输出详细报告。 要查看报告,请在用于 Android 应用调试的 Logcat 工具中搜索“YandexAds”关键字。
adb logcat -v brief '*:S YandexAds'
如果集成成功,您将看到以下消息:
adb logcat -v brief '*:S YandexAds'
mobileads$ adb logcat -v brief '*:S YandexAds'
I/YandexAds(13719): [Integration] Ad type App Open Ad was integrated successfully
如果您在集成广告时遇到问题,您将获得有关问题的详细报告以及如何解决这些问题的建议。
使用演示广告单元进行广告测试
我们建议使用测试广告来测试开屏广告集成和应用本身。
为了保证为每个广告请求返回测试广告,我们创建了一个特殊的演示广告版位 ID。用它来检查您的广告集成。
演示广告单元 ID:demo-appopenad-yandex
。
重要
在商店中发布您的应用之前,请确保将演示广告版位 ID 替换为从 Partner Interface 获取的真实广告版位 ID。
您可以在 用于测试的演示广告单元 版块找到可用的演示广告版位 ID 列表。
测试广告集成
您可以使用本机控制台工具测试广告集成。
要查看详细日志,请调用 YMAMobileAds
类的 enableLogging
方法。
YMAMobileAds.enableLogging()
要查看 SDK 日志,请前往控制台工具并设置 sybsystem = com.yandex.mobile.ads.sdk
。您还可以按类别和错误级别过滤日志。
如果您在集成广告时遇到问题,您将获得有关问题的详细报告以及如何解决这些问题的建议。
建议
-
不建议在应用到达启动画面之前展示开屏广告。
显示启动画面可增强用户体验,使其更加直观。这样,用户就会知道他们打开了正确的应用,不会因广告而感到意外或困惑。在此屏幕上,您还可以提醒用户即将展示的广告。为此,请使用加载指示器或简单的文本信息,告知用户他们可以在广告结束后继续查看应用内容。
-
如果广告请求与展示之间存在延迟,用户可能会在短暂打开应用后看到与应用内容无关的意外广告。这会对用户体验产生负面影响,因此应避免此类情况。一种解决方案是在显示主应用内容之前展示启动画面,并从该屏幕开始广告展示。不建议在启动画面后的内容已打开时再展示广告。
-
等待新用户打开应用并使用几次后,再开始投放开屏广告展示。仅向符合特定条件的用户展示广告(例如,如果完成特定关卡、打开应用达到一定次数或不参与奖励优惠)。不建议在用户安装应用后立即展示广告。
-
根据用户行为调整广告展示频率。不建议在每次冷启动或热启动时都展示广告。
-
仅当应用在后台运行了一定时间(例如 30 秒、2 分钟或 15 分钟)时才展示广告。
-
务必进行测试,因为每款应用都是独特的,需采用适合自身的方法来最大限度地提高收入,同时确保不影响用户留存或应用使用时长。用户行为和参与度可能会随着时间的推移而发生变化,因此我们建议定期在应用内测试不同的开屏广告展示策略。
其他资源
-
GitHub 链接。