Unity 앱에 전면 광고 추가

Audience Network를 사용하면 Facebook 광고를 통해 Android 및 iOS 앱에서 수익을 창출할 수 있습니다. 전면 광고는 앱 플로의 전환 지점에 사용할 수 있는 전체 광고 화면 경험입니다. 예를 들어 활동 중간이나 게임에서 다음 레벨로 넘어가기 전 일시 정지 도중이 해당합니다. 크리에이티브 콘텐츠는 이미지, 동영상 또는 슬라이드를 사용할 수 있습니다. 이 가이드에서는 앱에 전면 광고를 추가하는 방법을 설명합니다.

계속 진행하기 전에 Audience Network 시작하기Unity 시작하기 가이드를 완료했는지 확인하세요.

전면 광고 단계

1단계: 전면 광고 개체 만들기

2단계: 콜백 이벤트 추가

3단계: 광고 읽어들이기

4단계: 광고 표시

1단계: 전면 광고 개체 만들기

전면 광고를 표시하기 위한 첫 단계는 GameObject에 첨부된 C# 스크립트에서 InterstitialAd 개체를 만드는 것입니다.

...
using AudienceNetwork;
...

public class InterstitialAdTest : MonoBehaviour
{
    ...
    private InterstitialAd interstitialAd;
    private bool isLoaded;
    ...

    public void LoadInterstitial()
    {
        this.interstitialAd = new InterstitialAd("YOUR_PLACEMENT_ID");
        this.interstitialAd.Register(this.gameObject);

        // Set delegates to get notified on changes or when the user interacts with the ad.
        this.interstitialAd.InterstitialAdDidLoad = (delegate() {
            Debug.Log("Interstitial ad loaded.");
            this.isLoaded = true;
        });
        interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) {
            Debug.Log("Interstitial ad failed to load with error: " + error);
        });
        interstitialAd.InterstitialAdWillLogImpression = (delegate() {
            Debug.Log("Interstitial ad logged impression.");
        });
        interstitialAd.InterstitialAdDidClick = (delegate() {
            Debug.Log("Interstitial ad clicked.");
        });

        this.interstitialAd.interstitialAdDidClose = (delegate() {
            Debug.Log("Interstitial ad did close.");
            if (this.interstitialAd != null) {
                this.interstitialAd.Dispose();
            }
        });

        // Initiate the request to load the ad.
        this.interstitialAd.LoadAd();
    }
    ...
}

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

  • placementId - 이 전면 광고 유닛의 Audience Network 노출 위치 ID.

2단계: 콜백 이벤트 추가

그다음으로는 몇 개의 콜백을 구현하여 광고의 수명 주기 이벤트를 받아봅니다. 아래 예시와 같이 이벤트의 델리게이트를 등록하여 해당 이벤트를 수신합니다.

...
// Set delegates to get notified on changes or when the user interacts with the ad.
this.interstitialAd.InterstitialAdDidLoad = (delegate() {
    Debug.Log("Interstitial ad loaded.");
    this.isLoaded = true;
});
interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) {
    Debug.Log("Interstitial ad failed to load with error: " + error);
});
interstitialAd.InterstitialAdWillLogImpression = (delegate() {
    Debug.Log("Interstitial ad logged impression.");
});
interstitialAd.InterstitialAdDidClick = (delegate() {
    Debug.Log("Interstitial ad clicked.");
});

this.interstitialAd.interstitialAdDidClose = (delegate() {
    Debug.Log("Interstitial ad did close.");
    if (this.interstitialAd != null) {
        this.interstitialAd.Dispose();
    }
});
...

Unity Android에서 폐기된 광고 활동에 대한 콜백

이 내용은 Android에만 적용됩니다.

현재 Android용 Unity 게임은 메인 Unity ActivitysingleTasklaunchMode를 가질 수 있도록 지원합니다. Android 매니페스트를 위한 Unity 문서활동을 위한 Android 문서를 참조하세요.

Activity를 사용하여 InterstitialRewarded Video 광고를 표시하기 때문에 사용자가 앱을 백그라운드로 돌렸다가 앱 전환기가 아닌 아이콘으로 다시 앱을 시작하면 광고 활동이 적절히 닫히지 않은 상태에서 폐기될 수 있습니다. 다음 콜백을 사용하여 사용자가 광고를 닫았는지 확인할 수 있습니다.

삽입 광고:

this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); this.didClose = true; if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); #if UNITY_ANDROID /* * Android에만 적용됩니다. * 삽입 광고 활동이 적절히 닫히지 않은 상태에서 * 폐기되었을 경우에만 이 콜백이 트리거됩니다. * launchMode:singleTask가 있는 앱(예: Unity 게임)을 * 백그라운드로 돌렸다가 아이콘을 탭해서 다시 시작하면 이렇게 될 수 있습니다. */ this.interstitialAd.interstitialAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Interstitial activity destroyed without being closed first."); Debug.Log("Game should resume."); } }); #endif 

보상형 동영상:

this.rewardedVideoAd.rewardedVideoAdDidClose = (delegate() { Debug.Log("Rewarded video ad did close."); this.didClose = true; if (this.rewardedVideoAd != null) { this.rewardedVideoAd.Dispose(); } }); #if UNITY_ANDROID /* * Android에만 적용됩니다. * 보상형 동영상 활동이 적절히 닫히지 않은 상태에서 * 폐기되었을 경우에만 이 콜백이 트리거됩니다. launchMode:singleTask가 있는 앱(예: Unity 게임)을 * 백그라운드로 돌렸다가 아이콘을 탭해서 다시 시작하면 이렇게 될 수 있습니다. */ this.rewardedVideoAd.rewardedVideoAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Rewarded video activity destroyed without being closed first."); Debug.Log("Game should resume. User should not get a reward."); } }); #endif 

3단계: 광고 읽어들이기

InterstitialAd가 인스턴스화되고 나면 광고를 읽어들여야 합니다. 이때 InterstitialAd 클래스의 loadAd() 메서드를 사용합니다.

위의 예시에서 광고를 읽어들이는 방법은 다음과 같습니다.

...
this.interstitialAd.LoadAd();
...

4단계: 광고 표시

마지막으로 전면 광고를 읽어들이고 나면 Show 메서드를 호출하여 화면에 전면 광고를 렌더링할 수 있습니다. 예를 들어 ShowInterstitial에 대한 함수를 만들고 전면 광고를 표시할 시점이 되면 이 함수를 호출합니다.

// Show button
public void ShowInterstitial()
{
    if (this.isLoaded) {
        this.interstitialAd.Show();
        this.isLoaded = false;

    } else {
        Debug.Log("Interstitial Ad not loaded!");
    }
}

다음 단계

Unity 앱에서 여러 광고 형식을 통합하려면 Facebook 가이드를 참조하세요.

앱에 광고를 전송하여 수익을 창출할 준비가 완료되었다면, 앱이 Audience Network 정책Facebook 커뮤니티 규정을 준수하는지 확인한 후 검수를 위해 제출하세요.