전면 광고 (기존)

전면 광고는 호스트 앱의 인터페이스를 가리는 전체 화면 광고입니다. 일반적으로 앱 이용 중 자연스러운 전환 시점에 표시됩니다. 예를 들어 게임에서 다음 레벨로 넘어갈 때 멈출 때처럼 말이죠 앱에서 전면 광고가 표시되는 경우 사용자는 광고를 탭하여 닫고 앱으로 돌아가세요 우수사례

이 가이드에서는 Unity 앱에 전면 광고를 통합하는 방법을 설명합니다.

기본 요건

전면 광고 만들기

전면 광고를 게재하려면 먼저 InterstitialAd GameObject에 첨부된 스크립트의 객체.

using GoogleMobileAds.Api;
...

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}

InterstitialAd의 생성자에는 다음과 같은 매개변수가 있습니다.

  • adUnitId: InterstitialAd가 처리해야 하는 AdMob 광고 단위 ID입니다. 광고를 로드합니다.

사용하는 광고 단위에 따라 광고 단위가 사용되는 방식이 있습니다. iOS에서 광고를 요청하려면 iOS 광고 단위를 사용해야 하며 Android에서 요청하기 위한 Android 광고 단위입니다.

항상 테스트 광고로 테스트

위의 샘플 코드에는 광고 단위 ID가 포함되어 있으며 있습니다. 실제 광고가 아닌 테스트 광고를 반환하도록 특별히 구성되었습니다. 요청할 때마다 호출되므로 안전하게 사용할 수 있습니다.

하지만 일단 AdMob UI에 앱을 등록하고 자체 광고 단위를 만들면 앱에서 사용할 ID를 찾으려면 명시적으로 기기를 테스트 기기를 있습니다. 이것은 매우 중요합니다. 실제 광고로 테스트( 탭하지 않는 것)을 위반하는 행위는 AdMob 정책에 위배되며 이로 인해 정지됨. 개발할 때 항상 테스트 광고를 받는 방법에 대한 정보는 테스트 광고를 참고하세요.

광고 로드

InterstitialAd가 인스턴스화되면 다음 단계는 광고를 로드하는 것입니다. InterstitialAd 클래스의 loadAd() 메서드를 사용하면 됩니다. AdRequest 인수: 런타임 정보 (예: 타겟팅)를 포함합니다. 정보)를 전달할 수 있습니다.

다음은 광고를 로드하는 방법을 보여주는 예입니다.

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}
드림

광고 게재

전면 광고는 앱 이용이 잠시 중단될 때 자연스럽게 표시되어야 합니다. 예를 들어 게임에서 다음 레벨로 넘어갈 때 또는 작업을 완료한 직후가 좋은 예입니다. 전면 광고를 표시하려면 isLoaded() 메서드를 사용하여 로드가 완료되었는지 확인한 다음 show()를 호출하세요.

이전 예시 코드의 전면 광고가 생성할 수 있습니다.

private void GameOver()
{
  if (this.interstitial.IsLoaded()) {
    this.interstitial.Show();
  }
}

광고 이벤트

광고의 작동 방식을 추가로 맞춤설정하려는 경우 로드, 열기, 닫기 등 광고 수명 주기의 이벤트 듣기 적절한 EventHandler에 대한 대리자를 등록하여 이러한 이벤트를 확인할 수 있습니다.

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpening;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

public void HandleOnAdLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLoaded event received");
}

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                        + args.Message);
}

public void HandleOnAdOpening(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpening event received");
}

public void HandleOnAdClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClosed event received");
}

OnAdFailedToLoad 이벤트는 특수 이벤트 인수를 포함합니다. 이 함수는 다음을 설명하는 Message가 있는 HandleAdFailedToLoadEventArgs의 인스턴스 오류:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
광고 이벤트설명
OnAdLoaded OnAdLoaded 이벤트는 광고 로드가 완료되면 실행됩니다.
OnAdFailedToLoad OnAdFailedToLoad 이벤트는 광고 로드에 실패할 때 실행됩니다. Message 매개변수는 다음과 같은 실패 유형을 설명합니다. 수 있습니다.
OnAdOpening 이 메서드는 광고가 표시될 때 실행되며 기기의 전체 영역을 덮습니다. 화면에 나타납니다.
OnAdClosed 이 메서드는 전면 광고가 닫힐 때 실행됩니다. 닫기 아이콘을 탭하거나 뒤로 버튼을 사용하는 사용자 앱에서 오디오 출력 또는 게임 루프를 일시중지했을 때 이 메서드로 재개하면 편리합니다.

전면 광고 정리

InterstitialAd 지정이 끝나면 참조를 삭제하기 전에 Destroy() 메서드를 호출해야 합니다.

interstitial.Destroy();

이렇게 하면 플러그인이 객체를 더 이상 사용되지 않는 것으로 인식하므로 객체가 점유한 메모리를 회복할 수 있습니다. 이 메서드를 호출하지 않으면 메모리 누수가 발생합니다.

권장사항

전면 광고가 앱에 적합한 광고 유형인지 생각해 보세요.
전면 광고는 자연스러운 전환 지점이 있는 앱에서 가장 효과적입니다. 이미지 공유 또는 작업 완료와 같이 앱 내에서 작업이 완료되는 것을 의미합니다. 그러한 지점을 만듭니다. 사용자가 사용자의 참여를 방해하지 않고 간편하게 전면 광고를 표시할 수 있습니다. 경험해 볼 수 있습니다 앱 워크플로의 어떤 지점에서 진행할지 고려해야 합니다. 전면 광고를 표시하고 사용자가 어떻게 반응할지를 살펴보겠습니다.
전면 광고를 표시할 때는 작업을 일시중지해야 합니다.
전면 광고에는 텍스트, 이미지, 확인할 수 있습니다. 앱에서 전면 광고를 표시할 때는 광고에서 리소스를 활용할 수 있도록 일부 리소스의 이용을 중지해야 합니다. 예를 들어 앱에서 재생되는 오디오 출력을 일시중지해야 합니다. onAdClosed() 이벤트 핸들러에서 사운드 재생을 재개할 수 있습니다. 사용자가 광고와의 상호작용을 마치면 호출됩니다. 또한 강도 높은 계산 작업 (예: 게임 루프)을 일시적으로 중지하는 것이 좋습니다. 종료되어도 됩니다. 이렇게 하면 사용자가 느리거나 응답이 없는 그래픽 또는 동영상 끊김 등의 문제가 있을 수 있습니다.
로드 시간을 충분히 확보하세요.
적절한 위치에 전면 광고를 표시하는 것도 중요하듯이 적절한 시간 내에 사용자가 기다리지 않도록 하는 것도 중요합니다. 할 수 있습니다. 시작하기 전에 loadAd()를 호출하여 광고를 미리 로드 show()를 호출하면 앱에서 전면 광고가 완전히 로드되도록 준비해 두는 것이 좋습니다.
사용자에게 광고를 지나치게 많이 게재하지 않습니다.
앱에 게재되는 전면 광고의 게재빈도가 늘어나는 것처럼 보일 수 있지만 이용 만족도가 떨어질 수 있으므로 클릭률 감소 사용자가 너무 자주 더 이상 앱 사용을 즐길 수 없다고 알립니다.

추가 리소스

샘플

성공사례