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
)일 때npa
를1
로 추가합니다.
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
특정 이벤트를 수신할 수 있습니다. 필요에 따라 구현해주세요.
// 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
Was this helpful?