구글 애드몹 (Admob)

알립니다

이 기능은 베타 서비스입니다. 개선 의견과 문의사항은 에어브릿지 CSM을 통해 전달해 주세요. 담당 CSM이 없는 경우 문의하기를 통해 전달해 주세요. 정식 서비스에서 발전한 기능으로 보답하겠습니다.

에어브릿지와 구글의 애드몹(Admob)을 연동해 광고로 발생한 수익과 관련된 데이터를 에어브릿지 대시보드에서 확인할 수 있습니다. 에어브릿지는 구글의 애드몹과 SDK 연동을 지원합니다.

SDK 연동하기

아래 링크에 따라 애드몹 SDK를 설치해 주세요.

애드몹 노출 수준 광고 수익 기능 설정하기

애드몹의 광고 수익 데이터는 노출 수준 광고 수익 기능을 설정해야 수집할 수 있습니다. 애드몹 가이드를 참고해 주세요.

에어브릿지로 광고 클릭 데이터 전송하기

애드몹에서 발생한 광고 클릭 데이터를 에어브릿지로 전송합니다. 광고를 보여질때 광고 클릭 데이터를 에어브릿지 SDK로 전송합니다.

1234567891011121314151617181920212223242526272829303132333435363738394041
- (void)load {
    GADRequest* request = [GADRequest request];
    [GADRewardedAd loadWithAdUnitID:@"ad unit ID"
                            request:request
                  completionHandler:^(GADRewardedAd *ad, NSError *error)
     {
        self.ad = ad;
        self.ad.paidEventHandler = ^void(GADAdValue *_Nonnull adValue){
            // ...
        };
    }];
}

- (void)show {
    UIViewController *yourViewController = nil;
    
    NSString* adUnitId = self.ad.adUnitID;
    NSString* adNetworkAdapter = self.ad.responseInfo.loadedAdNetworkResponseInfo.adNetworkClassName;
    
    __block GADAdReward *reward = self.ad.adReward;
    
    // Send Event
    ABInAppEvent* event = [[ABInAppEvent alloc] init];
    [event setAction:adUnitId];
    [event setCategory:@"airbridge.adClick"];
    [event setLabel:adNetworkAdapter];
    [event setSemantics:@{
        @"adPartners": @{
            @"admob": @{
                @"ad_unit_id": adUnitId,
                @"ad_network_adapter": adNetworkAdapter
            }
        },
    }];
    [event send];
    
    // Present RewardVideo Step
    [self.ad presentFromRootViewController:yourViewController userDidEarnRewardHandler:^{
        NSLog(@"Reward received with amount \(%f)", reward.amount.doubleValue);
    }];
}

에어브릿지로 광고 수익 데이터 전송하기

애드몹에서 발생한 광고 수익 데이터를 에어브릿지로 전송합니다. 애드몹 SDK에 광고 수익 데이터 콜백을 설정합니다. 해당 콜백을 활용하여 광고 수익 데이터를 에어브릿지 SDK로 전송합니다.

애드몹 SDK는 플랫폼에 따라 전송하는 광고 수익 데이터가 다릅니다. 예를 들어, 서비스에서 발생한 광고 수익이 0.0005 달러라면 유니티와 안드로이드에서는 5000이 전송됩니다. iOS에서는 0.0005가 전송됩니다. 아래 코드에서는 모든 플랫폼에서 에어브릿지 SDK에 value로 0.005를 입력합니다. 또한, semanticAttributes.adPartners.admob.value_micros에는 5000을 입력합니다.

12345678910111213141516171819202122232425262728293031323334353637
private void RequestRewardedAd()
{
    RewardedAd.LoadAd(adUnitId, new AdRequest.Builder().Build(), (rewardedAd, error) => {
        if (error != null) { return; }

        this.rewardedAd = rewardedAd;
        this.rewardedAd.OnPaidEvent += this.HandleAdPaidEvent;
    }
}

public void HandleAdPaidEvent(object sender, AdValueEventArgs args)
{
    AdValue adValue = args.AdValue;
    var adUnitId = this.rewardedAd.adUnitId;
    var adNetworkAdapter = this.rewardedAd.MediationAdapterClassName();
  
    AirbridgeEvent @event = new AirbridgeEvent("airbridge.adImpression");

    var admob = new Dictionary<string, object>();
    admob["value_micros"] = adValue.Value;
    admob["currency_code"] = adValue.CurrencyCode;
    admob["precision"] = adValue.Precision;
  
    admob["ad_unit_id"] = adUnitId;
    admob["ad_network_adapter"] = adNetworkAdapter;
     
    var adPartners = new Dictionary<string, object>();
    adPartners["admob"] = admob;
  
    @event.SetAction(adUnitId);
    @event.SetLabel(adNetworkAdapter);
    @event.SetValue(adValue.Value / 1000000.0);
    @event.AddSemanticAttribute("adPartners", adPartners);
    @event.AddSemanticAttribute("currency", adValue.CurrencyCode);
  
    AirbridgeUnity.TrackEvent(@event);
}

도움이 되었나요?

더 필요한 내용이 있나요?