AD(X)

알립니다

이 기능은 베타 서비스입니다. 문의사항은 에어브릿지 CSM을 통해 전달해 주세요. 담당 CSM이 없는 경우 문의하기를 통해 전달해 주세요.

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

SDK 연동하기

아래 링크에 따라 AD(X) SDK를 설치해 주세요.

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

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

Android SDK (v4)

123456789101112131415161718192021222324252627282930
rewardedAd.setOnPaidEventListener(object : OnPaidEventListener() {
    fun onPaidEvent(ecpm: Double) {
        val revenue = ecpm / 1000
        val adPlatform = "AD(X)"
        val adUnitID = "<ADX_BANNER_AD_UNIT_ID>"
        val adUnitName = "ADX Rewarded Ad"
        val adFormat = "RewardedAd"
        val currency = "USD"

        Airbridge.trackEvent(
            AirbridgeCategory.AD_IMPRESSION, 
            mapOf(
                AirbridgeAttribute.ACTION to adUnitName,
                AirbridgeAttribute.LABEL to adFormat,
                AirbridgeAttribute.VALUE to revenue,
                AirbridgeAttribute.AD_PARTNERS to mapOf(
                    "adx" to mapOf(
                        "ad_platform" to adPlatform,
                        "ad_unit_id" to adUnitID,
                        "ad_unit_name" to adUnitName,
                        "ad_format" to adFormat,
                        "value" to revenue,
                        "currency" to currency
                    )
                ),
                AirbridgeAttribute.CURRENCY to currency
            )
        )
    }
})
12345678910111213141516171819202122232425262728293031
rewardedAd.setOnPaidEventListener(new OnPaidEventListener() {
    @Override
    public void onPaidEvent(double ecpm) {
        double revenue = ecpm / 1000;
        String adPlatform = "AD(X)";
        String adUnitID = "<ADX_BANNER_AD_UNIT_ID>";
        String adUnitName = "ADX Rewarded Ad";
        String adFormat = "RewardedAd";
        String currency = "USD";

        Airbridge.trackEvent(
            AirbridgeCategory.AD_IMPRESSION, 
            new HashMap() {{
                put(AirbridgeAttribute.ACTION, adUnitName);
                put(AirbridgeAttribute.LABEL, adFormat);
                put(AirbridgeAttribute.VALUE, revenue);
                put(AirbridgeAttribute.AD_PARTNERS, new HashMap() {{
                    put("adx", new HashMap() {{
                        put("ad_platform", adPlatform);
                        put("ad_unit_id", adUnitID);
                        put("ad_unit_name", adUnitName);
                        put("ad_format", adFormat);
                        put("value", revenue);
                        put("currency", currency);
                    }});
                }});
                put(AirbridgeAttribute.CURRENCY, currency);
            }}
        );
    }
});

Android SDK (Previous)

12345678910111213141516171819202122232425262728293031
rewardedAd.setOnPaidEventListener(object : OnPaidEventListener() {
    fun onPaidEvent(ecpm: Double) {
        val revenue = ecpm / 1000
        val adPlatform = "AD(X)"
        val adUnitID = "<ADX_BANNER_AD_UNIT_ID>"
        val adUnitName = "ADX Rewarded Ad"
        val adFormat = "RewardedAd"
        val currency = "USD"

        val event = Event("airbridge.adImpression")

        val adx = mutableMapOf<String, Any?>()
        adx["ad_platform"] = adPlatform
        adx["ad_unit_id"] = adUnitID
        adx["ad_unit_name"] = adUnitName
        adx["ad_format"] = adFormat
        adx["value"] = revenue
        adx["currency"] = currency

        val adPartners = mapOf("adx" to adx)
        event.action = adUnitName
        event.label = adFormat
        event.value = revenue
        event.semanticAttributes = mutableMapOf(
            "adPartners" to adPartners,
            "currency" to currency
        )

        Airbridge.trackEvent(event)
    }
})
1234567891011121314151617181920212223242526272829303132333435
rewardedAd.setOnPaidEventListener(new OnPaidEventListener() {
    @Override
    public void onPaidEvent(double ecpm) {
        double revenue = ecpm / 1000;
        String adPlatform = "AD(X)";
        String adUnitID = "<ADX_BANNER_AD_UNIT_ID>";
        String adUnitName = "ADX Rewarded Ad";
        String adFormat = "RewardedAd";
        String currency = "USD";

        Event event = Event("airbridge.adImpression");

        Map<String, Object> adx = new HashMap<>();
        adx.put("ad_platform", adPlatform);
        adx.put("ad_unit_id", adUnitID);
        adx.put("ad_unit_name", adUnitName);
        adx.put("ad_format", adFormat);
        adx.put("value", revenue);
        adx.put("currency", currency);

        Map<String, Object> adPartners = new HashMap<>();
        adPartners.put("adx", adx);

        Map<String, Object> semanticAttributes = new HashMap<>();
        semanticAttributes.put("adPartners", adPartners);
        semanticAttributes.put("currency", currency);

        event.setAction(adUnitName);
        event.setLabel(adFormat);
        event.setValue(revenue);
        event.setSemanticAttributes(semanticAttributes);

        Airbridge.trackEvent(event);
    }
});

iOS SDK (v4)

12345678910111213141516171819202122232425262728
rewardedAd.paidEventHandler = { eCPM in
    let revenue = eCPM / 1000
    let adPlatform = "AD(X)"
    let adUnitID = "<ADX_BANNER_AD_UNIT_ID>"
    let adUnitName = "ADX Rewarded Ad"
    let adFormat = "RewardedAd"
    let currency = "USD"

    Airbridge.trackEvent(
        category: AirbridgeCategory.AD_IMPRESSION,
        semanticAttributes: [
            AirbridgeAttribute.ACTION: adUnitName,
            AirbridgeAttribute.LABEL: adFormat,
            AirbridgeAttribute.VALUE: revenue,
            AirbridgeAttribute.AD_PARTNERS: [
                "adx": [
                    "ad_platform": adPlatform,
                    "ad_unit_id": adUnitID,
                    "ad_unit_name": adUnitName,
                    "ad_format": adFormat,
                    "value": revenue,
                    "currency": currency
                ]
            ],
            AirbridgeAttribute.CURRENCY: currency
        ]
    )
}
12345678910111213141516171819202122232425
self.rewardedAd.paidEventHandler = ^(double eCPM) {
    double revenue = eCPM / 1000;
    NSString* adPlatform = "AD(X)";
    NSString* adUnitID = "<ADX_BANNER_AD_UNIT_ID>";
    NSString* adUnitName = "ADX Rewarded Ad";
    NSString* adFormat = "RewardedAd";
    NSString* currency = "USD";

    [Airbridge trackEventWithCategory:AirbridgeCategory.AD_IMPRESSION semanticAttributes:@{
        AirbridgeAttribute.ACTION: adUnitName,
        AirbridgeAttribute.LABEL: adFormat,
        AirbridgeAttribute.VALUE: @(revenue),
        AirbridgeAttribute.AD_PARTNERS: @{
            @"adx": @{
                @"ad_platform": adPlatform,
                @"ad_unit_id": adUnitID,
                @"ad_unit_name": adUnitName,
                @"ad_format": adFormat,
                @"value": @(revenue),
                @"currency": currency
            }
        },
        @"currency": currency
    }];
};

iOS SDK (Previous)

1234567891011121314151617181920212223242526272829
rewardedAd.paidEventHandler = { eCPM in
    let revenue = eCPM / 1000
    let adPlatform = "AD(X)"
    let adUnitID = "<ADX_BANNER_AD_UNIT_ID>"
    let adUnitName = "ADX Rewarded Ad"
    let adFormat = "RewardedAd"
    let currency = "USD"

    let event = ABInAppEvent()
    event?.setCategory("airbridge.adImpression")
    event?.setAction(adUnitName)
    event?.setLabel(adFormat)
    event?.setValue(revenue)
    event?.setSemantics([
        "adPartners": [
            "adx": [
                "ad_platform": adPlatform,
                "ad_unit_id": adUnitID,
                "ad_unit_name": adUnitName,
                "ad_format": adFormat,
                "value": revenue,
                "currency": currency
            ]
        ],
      	"currency": currency
    ])

    event?.send()
}
1234567891011121314151617181920212223242526272829
self.rewardedAd.paidEventHandler = ^(double eCPM) {
    double revenue = eCPM / 1000;
    NSString* adPlatform = "AD(X)";
    NSString* adUnitID = "<ADX_BANNER_AD_UNIT_ID>";
    NSString* adUnitName = "ADX Rewarded Ad";
    NSString* adFormat = "RewardedAd";
    NSString* currency = "USD";

    ABInAppEvent* event = [[ABInAppEvent alloc] init];
    [event setCategory:@"airbridge.adImpression"];
    [event setAction:adUnitName];
    [event setLabel:adFormat];
    [event setValue:revenue];
    [event setSemantics:@{
        @"adPartners": @{
            @"adx": @{
                @"ad_platform": adPlatform,
                @"ad_unit_id": adUnitID,
                @"ad_unit_name": adUnitName,
                @"ad_format": adFormat,
                @"value": @(revenue),
                @"currency": currency
            }
        },
        @"currency": currency
    }];

    [event send];
};

Unity SDK (v4)

1234567891011121314151617181920212223242526272829303132333435363738
rewardedAd.OnPaidEvent += RewardedAd_OnPaidEvent;

void RewardedAd_OnPaidEvent(double ecpm)
{
    var revenue = ecpm / 1000f;
    var adPlatform = "AD(X)";
    var adUnitID = "<ADX_BANNER_AD_UNIT_ID>";
    var adUnitName = "ADX Rewarded Ad";
    var adFormat = "RewardedAd";
    var currency = "USD";

    Airbridge.TrackEvent(
        category: AirbridgeCategory.AD_IMPRESSION,
        semanticAttributes: new Dictionary<string, object>()
        {
            { AirbridgeAttribute.ACTION, adUnitName },
            { AirbridgeAttribute.LABEL, adFormat },
            { AirbridgeAttribute.VALUE, revenue },
            {
                AirbridgeAttribute.AD_PARTNERS, new Dictionary<string, object>()
                {
                    {
                        "adx", new Dictionary<string, object>()
                        {
                            { "ad_platform", adPlatform },
                            { "ad_unit_id", adUnitID },
                            { "ad_unit_name", adUnitName },
                            { "ad_format", adFormat },
                            { "value", revenue },
                            { "currency", currency }
                        }
                    }
                }
            },
            { AirbridgeAttribute.CURRENCY, currency }
        }
    );
}

Unity SDK (Previous)

1234567891011121314151617181920212223242526272829303132
rewardedAd.OnPaidEvent += RewardedAd_OnPaidEvent;

void RewardedAd_OnPaidEvent(double ecpm)
{
    var revenue = ecpm / 1000f;
    var adPlatform = "AD(X)";
    var adUnitID = "<ADX_BANNER_AD_UNIT_ID>";
    var adUnitName = "ADX Rewarded Ad";
    var adFormat = "RewardedAd";
    var currency = "USD";

    AirbridgeEvent @event = new AirbridgeEvent("airbridge.adImpression");

    var adx = new Dictionary<string, object>();
    adx["ad_platform"] = adPlatform;
    adx["ad_unit_id"] = adUnitID;
    adx["ad_unit_name"] = adUnitName;
    adx["ad_format"] = adFormat;
    adx["value"] = revenue;
    adx["currency"] = currency;

    var adPartners = new Dictionary<string, object>();
    adPartners["adx"] = adx;

    @event.SetAction(adUnitName);
    @event.SetLabel(adFormat);
    @event.SetValue(revenue);
    @event.AddSemanticAttribute("adPartners", adPartners);
    @event.AddSemanticAttribute("currency", currency);

    AirbridgeUnity.TrackEvent(@event);
}