跳转到内容

应用开屏广告

AppLovin Unity 插件 5.5.0 引入了应用开屏广告格式。 应用开屏广告与插屏广告类似,但会在用户热启动或冷启动应用时展示:

冷启动
在设备上创建新应用会话
  • 应用不在设备内存中
  • 需要启动/加载界面
热启动
将应用从后台转到前台,或在应用处于前台模式时打开手机
  • 应用在内存中处于挂起状态
  • 需要启动/加载界面

最佳实践

  • 在应用开屏广告展示之前使用启动/加载界面。无论广告以何种方式在应用内放置,都进行该操作。
    • 向用户发出信息,告知用户将在启动/加载界面中看到广告。
      • 例如“在应用加载时观看赞助商的广告。”
    • 确保在广告展示之前用户不会看到实际的应用内容。 正确的顺序是:启动/加载界面 ⇒ 应用开屏广告 ⇒ 应用内容。
  • 在加载应用开屏广告前,请确保 AppLovin SDK 已初始化。
  • 当应用开屏广告尚未加载时 (即冷启动时),请首先加载开屏广告,稍后再加载其他格式的广告,避免与应用开屏广告同时加载。
    • 并行加载多种格式的广告对设备资源和广告需求方的 SDK 来说都是不利的。
  • 为避免向用户过度展示应用开屏广告,AppLovin 建议采用以下策略:
    • 使用在 AppLovin 之外的方式管理的频率上限。 这样您就可以完全控制广告的投放时间。
    • 根据用户在应用中的行为设置冷却期。 例如,热启动时,在两次广告展示之间间隔一段时间,或每隔一次热启动显示一次广告。
    • 等待新用户打开应用并使用几次后再展示第一个开屏广告。

留存

在采用开屏广告格式时,请始终考虑用户留存问题。

针对应用开屏广告,您可以选择多种实施策略。

AppLovin 建议您使用下文所述的一种或多种方法进行测试。 每款应用都有独特的配置,能在不影响用户留存或应用内时长的前提下实现收入最大化。 随着时间的推移,用户行为和交互可能会发生变化。因此,AppLovin 建议您定期重新测试应用开屏广告策略。 测试开屏广告时可采用的实施技巧包括:

  • 向合适的用户展示广告。 这种方法的例子包括:
    • 用户初始安装后等待数量不等的天数,然后再在冷启动时显示广告。
    • 仅向最近几天内进行过会话的用户显示。
    • 仅向符合应用内特定条件的用户展示。 例如,用户完成了特定关卡,打开应用达到一定次数,或未与激励广告交互。
  • 避免向用户过度展示广告。 这种方法的例子包括:
    • 不要抓住每个机会展示广告。 每隔 1 个、2 个或 3 个广告机会展示一次。
    • 仅当应用在后台运行一定时间 (如 30 秒、2 分钟、15 分钟) 时展示广告。
    • 展示冷启动广告一段时间内,不要展示热启动应用开屏广告或插屏广告。
    • 设置频率上限。如果可能,请根据用户同期群调整上限。
  • 使用启动画面通知用户。

使用开屏广告

为确保在应用转到前台时应用开屏广告已准备就绪,您需要预加载一则应用开屏广告。 实现一个工具类,用于在需要展示广告之前发送广告请求。 创建一个在广告就绪时显示广告的方法,并在应用转到前台时调用该方法。

然后,您的应用会尝试在应用打开时展示广告,或在未预加载广告的情况下加载广告。

监听应用前台事件

要获得应用前台事件通知,AppLovin 建议您监听 OnApplicationPause 事件。 通过重写 OnApplicationPause 方法,您的应用可以收到应用启动和前台事件的提醒并展示广告。

冷启动和加载界面

请求广告与收到要展示的广告之间可能存在时间差。 这种延迟可能会导致用户先短暂看到您的应用,然后突然看到完全无关的广告。 这种现象会损害用户体验,因此应该避免。 处理冷启动的首选方法是在展示任何应用初始内容之前使用加载界面,并从加载界面显示广告。 如果应用在加载界面后显示了任何应用内容,则不要展示广告。

您可以在应用开屏广告展示前显示一个加载界面,并且在广告被关闭之前结束加载界面。 在这种情况下,您可以在 didHide 方法中关闭加载界面。

示例

这些代码示例假设只有在“热启动”,即应用在内存中挂起时,展示开屏广告。 启动/加载界面不包括在内。 应用开发者必须自行处理启动/加载界面 — 请参阅最佳实践

public class ExampleHomeScreen : MonoBehaviour
{
void Start()
{
MaxSdkCallbacks.OnSdkInitializedEvent += sdkConfiguration =>
{
MaxSdkCallbacks.AppOpen.OnAdHiddenEvent += OnAppOpenDismissedEvent;
AppOpenManager.Instance.ShowAdIfReady();
};
MaxSdk.SetSdkKey("«SDK-key»");
MaxSdk.InitializeSdk();
}
public void OnAppOpenDismissedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
MaxSdk.LoadAppOpenAd(AppOpenAdUnitId);
}
private void OnApplicationPause(bool pauseStatus)
{
if (!pauseStatus)
{
AppOpenManager.Instance.ShowAdIfReady();
}
}
}
public class AppOpenManager
{
#if UNITY_IOS
private const string AppOpenAdUnitId = "«iOS-ad-unit-ID»";
#else // UNITY_ANDROID
private const string AppOpenAdUnitId = "«Android-ad-unit-ID»";
#endif
public void ShowAdIfReady()
{
if (MaxSdk.IsAppOpenAdReady(AppOpenAdUnitId))
{
MaxSdk.ShowAppOpenAd(AppOpenAdUnitId);
}
else
{
MaxSdk.LoadAppOpenAd(AppOpenAdUnitId);
}
}
}

受支持的适配器版本

广告平台最低适配器版本
Google 竞价和 Google AdMob22.2.0.2 (Android),10.9.0.1 (iOS)
Liftoff Monetize6.12.0.2 (Android),6.12.0.3 (iOS)
Mintegral16.6.61.1 (Android), 7.2.3.0.1 (iOS)
Pangle4.6.0.4.0 (Android),4.6.2.2.1 (iOS)