AdMob (ADX v2.4.0 미만)

ADX Unity Plugin 버전 v2.4.0 미만에서 AdMob 보상 광고를 로드 및 표시하는 방법에 대해서 설명합니다.

1. 기본 요건

  • ADX Unity SDK를 프로젝트에 추가합니다.

  • Rewarded Ad용으로 발급받은 AdMob Ad Unit ID를 사용합니다.

  • 광고를 요청하기 전에 SDK 초기화를 먼저 진행합니다.

    • SDK 초기화는 앱 실행 시 한 번만 호출하여 주시고, 광고 요청은 초기화가 완료된 후에 이뤄져야 합니다.

  • Unity > Assets > Google Mobile Ads > Settings를 선택하여 각 필드에 Android 및 iOS App ID를 입력합니다.

2. 구현

보상 광고 로드에 시간이 걸릴 수 있으니, 미리 로드 해두신 다음 사용하시는 것을 권장드립니다.

1) Android와 iOS 모두 배포된 경우 플랫폼 별로 발급받은 Ad Unit ID를 입력합니다.

#if UNITY_ANDROID
    string admobRewardedAdUnitID = "<ANDROID_ADMOB_REWARDED_AD_UNIT_ID>";
#elif UNITY_IOS
    string admobRewardedAdUnitID = "<IOS_ADMOB_REWARDED_AD_UNIT_ID>";
#endif

2) RewardedAd를 인스턴스화하고 필요한 callback을 추가합니다.

private RewardedAd rewardedAd;

public void LoadRewardedAd() {
    rewardedAd = new RewardedAd(admobRewardedAdUnitID);
    
    rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
    rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
    rewardedAd.OnAdOpening += HandleRewardedAdOpening;
    rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
    rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
    rewardedAd.OnAdClosed += HandleRewardedAdClosed;
    
    ...
}

3) AdRequest를 생성하고 LoadAd()를 호출하여 광고를 로드합니다.

  • GDPR 관련 규정을 준수하는 경우, 사용자가 개인정보 활용 및 수집을 거부한 상태(2)일 때 npa1로 추가합니다.

public void LoadRewardedAd() {
    ...
    
    if (ADXGDPRManager.GetConsentState() == 2) {
         // Create an empty ad request.
         AdRequest request = new AdRequest.Builder()
                                 .AddExtra("npa", "1")
                                 .Build();
         rewardedAd.LoadAd(request);
    } else {
         // Create an empty ad request.
         AdRequest request = new AdRequest.Builder()
                                 .Build();
         rewardedAd.LoadAd(request);
    }
}

3) IsLoaded()로 광고 로드가 완료되었는 지 확인 후, Show()로 광고를 표시합니다.

public void ShowRewardedAd() 
{
    if (rewardedAd.IsLoaded()){
        rewardedAd.Show();
    }
}

4) 광고 시청을 모두 완료하면 OnUserEarnedReward callback이 호출된 후, 보상을 지급하도록 처리합니다.

public void HandleUserEarnedReward(object sender, Reward args)
{
    string type = args.Type;
    double amount = args.Amount;
    MonoBehaviour.print("HandleRewardedAdRewarded event received for " + amount.ToString() + " " + type);
}

3. Callback

특정 이벤트를 수신할 수 있습니다. 필요에 따라 구현해주세요.

RewardedAd일회용 객체로 보상형 광고가 표시된 후에는 다시 표시되지 않습니다.

이전 광고가 닫힌 직후에 다음 보상형 광고가 로드될 수 있도록 OnAdClosed 에서 다른 보상형 광고를 로드하는 것이 좋습니다.

// Ad event fired when the reward video ad has been received.
event EventHandler<EventArgs> OnAdLoaded;

// Ad event fired when the reward video ad has failed to load.
event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;

// Ad event fired when the reward video ad is opened.
event EventHandler<EventArgs> OnAdOpening;

// Ad event fired when the reward video ad has failed to show.
event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToShow;

// Ad event fired when the reward video ad has rewarded the user.
event EventHandler<Reward> OnUserEarnedReward;

// Ad event fired when the reward video ad is closed.
event EventHandler<EventArgs> OnAdClosed;

4. 타겟팅

광고 요청 시 타겟팅 정보를 설정할 수 있습니다. 필요에 따라 구현해주세요.

1) 아동 대상 설정 (아동 온라인 개인정보 보호법(COPPA))

AdRequest request = new AdRequest.Builder()
			.TagForChildDirectedTreatment(true)
			.Build();

2) 광고 콘텐츠 필터링

AdRequest request = new AdRequest.Builder()
        .AddExtra("max_ad_content_rating", "G")
        .Build();

5. 테스트 기기 등록

개발 중 상용 광고 키로 광고를 테스트하려는 경우 아래 단계에 따라 테스트 기기를 등록 후 사용해주시기 바랍니다.

테스트 기기 미등록 상태로 테스트할 경우 계정이 정지될 수 있습니다.

1) ADXLibrary를 적용 후 광고를 로드하는 코드가 삽입된 상태로 실행해주시면 콘솔에서 해당 로그를 확인하실 수 있습니다.

 I/Ads: Use RequestConfiguration.Builder
  .setTestDeviceIds(Arrays.asList("33BE2250B43518CCDA7DE426D04EE231"))
to get test ads on this device."

2) 출력된 Device ID를 복사하여 아래와 같이 SetTestDeviceIds() 를 호출하여 테스트 기기를 등록해주시면 됩니다.

앱을 출시하기 전에 테스트 기기를 설정하는 코드를 반드시 삭제하세요.

List<string> deviceIds = new List<string>();
deviceIds.Add("33BE2250B43518CCDA7DE426D04EE231");
deviceIds.Add("2077ef9a63d2b398840261c8221a0c9b");
RequestConfiguration requestConfiguration = new RequestConfiguration
    .Builder()
    .SetTestDeviceIds(deviceIds)
    .build();

MobileAds.SetRequestConfiguration(requestConfiguration);

Last updated