AppOpen 광고

App open ads는 interstitial ads와 유사하지만, 사용자가 앱을 soft launch하거나 cold start할 때 표시됩니다.

Cold start
기기에서 앱의 새로운 세션을 생성하는 것
  • 앱이 기기 메모리에 없음
  • 스플래시/로딩 화면이 필요함
Soft launch
앱을 백그라운드에서 포그라운드로 가져오거나, 앱이 포그라운드 모일 때 전화를 활성화하는 것
  • 앱이 메모리에 일시 중단되어 있음
  • 스플래시/로딩 화면이 필요함

Fire OS 애플리케이션은 지원되지 않습니다.

Best practices

  • App open ad를 표시하기 전에 스플래시/로딩 화면을 표시하세요. 광고를 어떻게 배치하든 이 작업을 수행해야 합니다.
    • 스플래시/로딩 화면에서 사용자에게 광고가 표시될 것임을 알리는 문구를 포함하세요.
      • 예: “앱이 로드되는 동안 스폰서의 광고를 시청해 주세요.”
    • 광고가 표시되기 전에 사용자가 실제 앱 콘텐츠에 노출되지 않도록 하세요. 올바른 순서는 다음과 같습니다: 스플래시/로딩 화면 ⇒ app open ad ⇒ 앱 콘텐츠.
  • App open ad를 로드하기 전에 AppLovin SDK가 초기화되었는지 확인하세요.
  • App open ad가 아직 로드되지 않은 경우(즉, cold start 시), 먼저 로드하세요. 다른 광고 포맷은 나중에 로드하여 app open ad와 병렬로 로드되지 않도록 하세요.
    • 여러 광고 포맷을 병렬로 로드하는 것은 기기 리소스나 광고 디맨드 SDK에 좋지 않습니다.
  • 사용자가 App Open Ads에 과도하게 노출되는 것을 방지하기 위해, AppLovin은 다음과 같은 전략을 고려할 것을 권장합니다:
    • AppLovin 외부에서 관리하는 빈도 제한(frequency cap)을 사용하세요. 이렇게 하면 광고가 게재되는 시점을 완전히 제어할 수 있습니다.
    • 앱 내 사용자 행동을 기반으로 쿨다운 기간을 구현하세요. 예를 들어, soft launch 중에 광고를 다시 표시하기 전 일정 시간 동안 광고를 표시하지 않거나, soft launch 두 번 중 한 번만 광고를 표시합니다.
    • 신규 사용자가 앱을 열고 몇 번 사용할 때까지 기다린 후 첫 번째 App Open Ad를 표시하세요.

Retention

App Open Ad 포맷을 구현할 때는 항상 retention을 고려해야 합니다.

App open ads의 경우 다양한 구현 전략 중에서 선택할 수 있습니다.

AppLovin은 아래에 설명된 기술 중 하나 이상을 사용하여 테스트할 것을 권장합니다. 각 애플리케이션은 retention이나 앱 내 체류 시간에 영향을 주지 않으면서 수익을 극대화할 수 있는 고유한 구성을 가지고 있습니다. 사용자 행동과 인게이지먼트는 변경될 수 있으므로, AppLovin은 App Open Ads 전략을 자주 재테스트할 것을 권장합니다. App Open Ads를 테스트하기 위해 사용할 수 있는 몇 가지 구현 기술은 다음과 같습니다:

  • 올바른 사용자에게 표시하기. 이 기술의 예는 다음과 같습니다:
    • 최초 설치 후 cold start 시 광고를 표시하기까지 가변적인 일수 동안 대기합니다.
    • 지난 며칠 동안 세션이 있었던 사용자에게 표시합니다.
    • 앱에서 특정 기준에 도달한 사용자에게 표시합니다. 예를 들어 특정 레벨을 완료했거나, 앱을 특정 횟수만큼 열었거나, Rewarded 제품에 참여하지 않는 사용자입니다.
  • 사용자에게 광고가 과도하게 노출되는 것을 방지하기. 이 기술의 예는 다음과 같습니다:
    • 모든 기회마다 광고를 표시하지 마세요. 대신 두 번, 세 번 또는 네 번의 광고 기회마다 한 번씩 표시하세요.
    • 사용자가 특정 시간(예: 30초, 2분, 15분) 동안 앱을 백그라운드로 전환한 경우에만 광고를 표시하세요.
    • cold start 광고를 표시하는 경우, 일정 시간 동안 soft launch app open ads나 interstitials를 표시하지 마세요.
    • 빈도 제한(frequency cap)을 사용하세요. 가능한 경우 사용자 코호트에 따라 해당 제한을 맞춤 설정하세요.
  • 스플래시 화면을 사용하여 사용자에게 알리기.

Using an app open ad

사용자가 애플리케이션을 포그라운드로 가져올 때 바로 준비될 수 있도록 app open ad를 미리 로드(preload)해 두세요. 광고를 표시해야 하기 전에 광고 요청을 수행할 수 있도록 유틸리티 클래스를 구현하세요. 광고가 준비되었을 때 광고를 표시하는 메서드를 만드세요. 사용자가 앱을 포그라운드로 가져올 때 해당 메서드를 호출하세요.

그러면 앱은 앱이 열릴 때 광고 표시를 시도하거나, 미리 로드된 광고가 없는 경우 광고를 로드합니다.

Cold starts and loading screens

광고를 요청하는 시점과 표시할 광고를 수신하는 시점 사이에는 지연이 존재합니다. 앱을 제대로 설계하지 않으면 사용자가 잠시 앱을 보았다가 맥락에서 벗어난 광고에 깜짝 놀랄 수 있습니다. 이러한 나쁜 사용자 경험을 방지하세요. 앱 콘텐츠가 표시되기 전에 로딩 화면을 보여주고, 로딩 화면 이후에 광고를 보여주는 방식으로 cold starts를 처리할 수 있습니다. 로딩 화면 이후에 앱이 앱 콘텐츠를 표시하는 경우에는 광고를 보여주지 마세요.

App open ad 아래에 로딩 화면을 배치하고, 사용자가 광고를 닫기 전에 해당 로딩 화면이 완료되면 AppOpenAd.addAdHiddenEventListener에서 로딩 화면을 닫을 수 있습니다.

Example

이 코드 예제는 앱이 메모리에 일시 중단된 후 “soft launch” 시에만 app open ads가 표시된다고 가정합니다. 스플래시/로딩 화면은 포함되어 있지 않습니다. 스플래시/로딩 화면은 직접 처리해야 합니다—Best practices를 참조하세요.


const App = () => {

  const appState = useRef(AppState.currentState);

  useEffect(() => {
    AppLovinMAX.initialize('«SDK-key»').then((conf: Configuration) => {
      AppOpenAd.addAdLoadedEventListener((adInfo: AdInfo) => {
        console.log('AppOpen ad loaded from ' + adInfo.networkName);
      });
      AppOpenAd.addAdLoadFailedEventListener((errorInfo: AdLoadFailedInfo) => {
        console.log('AppOpen ad failed to load with code ' + errorInfo.code);
      });
      AppOpenAd.addAdFailedToDisplayEventListener((adInfo: AdDisplayFailedInfo) => {
        AppOpenAd.loadAd(«ad-unit-ID»);
      });
      AppOpenAd.addAdHiddenEventListener((adInfo: AdInfo) => {
        AppOpenAd.loadAd(«ad-unit-ID»);
      });

      AppOpenAd.loadAd(«ad-unit-ID»);
    });

    AppState.addEventListener("change", nextAppState => {
      if (appState.current.match(/inactive|background/) && nextAppState === "active") {
        showAdIfReady();
      }
      appState.current = nextAppState;
    });
  }, []);

  const showAdIfReady = async () => {
    const isAppOpenAdReady = await AppOpenAd.isAdReady(«ad-unit-ID»);
    if (isAppOpenAdReady) {
      AppOpenAd.showAd(«ad-unit-ID»);
    } else {
      AppOpenAd.loadAd(«ad-unit-ID»);
    }
  }
  ⋮
}

Supported adapter versions

Ad networkMinimum adapter version
BIGO Ads4.5.1.0 (Android), 4.2.1.0 (iOS)
Google Bidding and 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)

search