TradPlus

Note

This feature is currently in beta. If you have any questions or suggestions for improvements, reach out to your Airbridge CSM. If you don't have a dedicated CSM, contact us through the Airbridge Help Center.

Airbridge supports the SDK integration with TradPlus. With the integration, you can import ad revenue data from TradPlus to Airbridge.

SDK Integration

Click the link below and install the TradPlus SDK.

Send TradPlus data to Airbridge

Configure data callbacks in the TradPlus SDK to send ad revenue data to the Airbridge SDK.

Android SDK (v4)

1234567891011121314151617181920212223242526272829
TradPlusSdk.setGlobalImpressionListener { tpAdInfo ->
    if (tpAdInfo != null) {
        val adPlatform = "TradPlus"
        val adNetwork = tpAdInfo.adSourceName
        val adUnit = tpAdInfo.tpAdUnitId
        val adFormat = tpAdInfo.format
        val currency = "USD"
        val revenue = tpAdInfo.ecpm.toDouble() / 1000

        Airbridge.trackEvent(
            AirbridgeCategory.AD_IMPRESSION,
            mapOf(
                AirbridgeAttribute.ACTION to adNetwork,
                AirbridgeAttribute.LABEL to adFormat,
                AirbridgeAttribute.VALUE to revenue,
                AirbridgeAttribute.AD_PARTNERS to mapOf(
                    "tradPlus" to mapOf(
                        "ad_platform" to adPlatform,
                        "ad_network" to adNetwork,
                        "ad_unit" to adUnit,
                        "ad_format" to adFormat,
                        "value" to revenue
                    )
                ),
                AirbridgeAttribute.CURRENCY to currency
            )
        )
    }
}
12345678910111213141516171819202122232425262728293031323334
TradPlusSdk.setGlobalImpressionListener(new GlobalImpressionManager.GlobalImpressionListener() {
    @Override
    public void onImpressionSuccess(TPAdInfo tpAdInfo) {

        if (tpAdInfo != null) {
            String adPlatform = "TradPlus";
            String adNetwork = tpAdInfo.adSourceName;
            String adUnit = tpAdInfo.tpAdUnitId;
            String adFormat = tpAdInfo.format;
            String currency = "USD";
            double revenue = Double.parseDouble(tpAdInfo.ecpm) / 1000;


            Airbridge.trackEvent(
                AirbridgeCategory.AD_IMPRESSION,
                new HashMap() {{
                    put(AirbridgeAttribute.ACTION, adNetwork);
                    put(AirbridgeAttribute.LABEL, adFormat);
                    put(AirbridgeAttribute.VALUE, revenue);
                    put(AirbridgeAttribute.AD_PARTNERS, new HashMap() {{
                        put("tradPlus", new HashMap() {{
                            put("ad_platform", adPlatform);
                            put("ad_network", adNetwork);
                            put("ad_unit", adUnit);
                            put("ad_format", adFormat);
                            put("value", revenue);
                        }});
                    }});
                    put(AirbridgeAttribute.CURRENCY, currency);
                }}
            );
        }
    }
});

Android SDK (Previous)

123456789101112131415161718192021222324252627282930
TradPlusSdk.setGlobalImpressionListener { tpAdInfo ->
    if (tpAdInfo != null) {
        val adPlatform = "TradPlus"
        val adNetwork = tpAdInfo.adSourceName
        val adUnit = tpAdInfo.tpAdUnitId
        val adFormat = tpAdInfo.format
        val currency = "USD"
        val revenue = tpAdInfo.ecpm.toDouble() / 1000

        val event = Event("airbridge.adImpression")

        val tradPlus = mutableMapOf<String, Any?>()
        tradPlus["ad_platform"] = adPlatform
        tradPlus["ad_network"] = adNetwork
        tradPlus["ad_unit"] = adUnit
        tradPlus["ad_format"] = adFormat
        tradPlus["value"] = revenue

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

        Airbridge.trackEvent(event)
    }
}
12345678910111213141516171819202122232425262728293031323334353637
TradPlusSdk.setGlobalImpressionListener(new GlobalImpressionManager.GlobalImpressionListener() {
    @Override
    public void onImpressionSuccess(TPAdInfo tpAdInfo) {

        if (tpAdInfo != null) {
            String adPlatform = "TradPlus";
            String adNetwork = tpAdInfo.adSourceName;
            String adUnit = tpAdInfo.tpAdUnitId;
            String adFormat = tpAdInfo.format;
            String currency = "USD";
            double revenue = Double.parseDouble(tpAdInfo.ecpm) / 1000;

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

            Map<String, Object> tradPlus = new HashMap<>();
            tradPlus.put("ad_platform", adPlatform);
            tradPlus.put("ad_network", adNetwork);
            tradPlus.put("ad_unit", adUnit);
            tradPlus.put("ad_format", adFormat);
            tradPlus.put("value", revenue);

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

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

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

            Airbridge.trackEvent(event);
        }
    }
});

iOS SDK (v4)

123456789101112131415161718192021222324252627
let adPlatform = "TradPlus"
guard let adNetwork = adInfo["adNetworkName"] as? String else { return }
guard let adUnit = adInfo["adunit_id"] as? String else { return }
guard let adFormat = adInfo["adType"] as? String else { return }
let currency = "USD"

guard let ecpm = adInfo["ecpm"] as? String else { return }
let revenue = NSNumber(value: (Float(ecpm) ?? 0) / 1000.0)

Airbridge.trackEvent(
	category: AirbridgeCategory.AD_IMPRESSION,
	semanticAttributes: [
		AirbridgeAttribute.ACTION: adNetwork,
		AirbridgeAttribute.LABEL: adFormat,
		AirbridgeAttribute.VALUE: revenue,
		AirbridgeAttribute.AD_PARTNERS: [
			"tradPlus": [
				"ad_platform": adPlatform,
				"ad_network": adNetwork,
				"ad_unit": adUnit,
				"ad_format": adFormat,
				"value": revenue
			]
		],
		AirbridgeAttribute.CURRENCY: currency
	]
)
12345678910111213141516171819202122232425
- (void)tradPlusAdImpression:(NSDictionary *)adInfo
{
    NSString* adPlatform = @"TradPlus";
    NSString* adNetwork = adInfo[@"adNetworkName"];
    NSString* adUnit = adInfo[@"adunit_id"];
    NSString* adFormat = adInfo[@"adType"];
    NSString* currency = @"USD";
    NSNumber *revenue = [NSNumber numberWithFloat: [adInfo[@"ecpm"] floatValue]/1000.0];
    
    [Airbridge trackEventWithCategory:AirbridgeCategory.AD_IMPRESSION semanticAttributes:@{
        AirbridgeAttribute.ACTION: adNetwork,
        AirbridgeAttribute.LABEL: adFormat,
        AirbridgeAttribute.VALUE: revenue,
        AirbridgeAttribute.AD_PARTNERS: @{
            @"tradPlus": @{
                @"ad_platform": adPlatform,
                @"ad_network": adNetwork,
                @"ad_unit": adUnit,
                @"ad_format": adFormat,
                @"value": revenue
            }
        },
        @"currency": currency
    }];
}

iOS SDK (Previous)

1234567891011121314151617181920212223242526272829
let adPlatform = "TradPlus"
guard let adNetwork = adInfo["adNetworkName"] as? String else { return }
guard let adUnit = adInfo["adunit_id"] as? String else { return }
guard let adFormat = adInfo["adType"] as? String else { return }
let currency = "USD"

guard let ecpm = adInfo["ecpm"] as? String else { return }
let revenue = NSNumber(value: (Float(ecpm) ?? 0) / 1000.0)

let event = ABInAppEvent()

event?.setCategory("airbridge.adImpression")
event?.setAction(adNetwork)
event?.setLabel(adFormat)
event?.setValue(revenue)
event?.setSemantics([
    "adPartners": [
        "tradPlus": [
            "ad_platform": adPlatform,
            "ad_network": adNetwork,
            "ad_unit": adUnit,
            "ad_format": adFormat,
            "value": revenue
        ]
    ],
    "currency": currency
])

event?.send()
1234567891011121314151617181920212223242526272829
- (void)tradPlusAdImpression:(NSDictionary *)adInfo
{
    NSString* adPlatform = @"TradPlus";
    NSString* adNetwork = adInfo[@"adNetworkName"];
    NSString* adUnit = adInfo[@"adunit_id"];
    NSString* adFormat = adInfo[@"adType"];
    NSString* currency = @"USD";
    NSNumber *revenue = [NSNumber numberWithFloat: [adInfo[@"ecpm"] floatValue]/1000.0];
    
    ABInAppEvent* event = [[ABInAppEvent alloc] init];
    [event setCategory:@"airbridge.adImpression"];
    [event setAction:adNetwork];
    [event setLabel:adFormat];
    [event setValue:revenue];
    [event setSemantics:@{
        @"adPartners": @{
            @"tradPlus": @{
                @"ad_platform": adPlatform,
                @"ad_network": adNetwork,
                @"ad_unit": adUnit,
                @"ad_format": adFormat,
                @"value": revenue
            }
        },
        @"currency": currency
    }];

    [event send];
}

Unity SDK (v4)

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
TradplusAds.Instance().AddGlobalAdImpression(OnGlobalAdImpression);

// ...

void OnGlobalAdImpression(Dictionary<string, object> adInfo)
{
    string adPlatform = "TradPlus";
    var adNetwork = "";
    var adUnit = "";
    var adFormat = "";
#if UNITY_IOS
    adNetwork = adInfo["adNetworkName"] as string;
    adUnit = adInfo["adunit_id"] as string;
    adFormat = adInfo["adType"] as string;
#else
    adNetwork = adInfo["adSourceName"] as string;
    adUnit = adInfo["tpAdUnitId"] as string;
    adFormat = adInfo["format"] as string;
#endif
    var currency = "USD";
    var revenue = double.Parse(adInfo["ecpm"] as string, System.Globalization.CultureInfo.InvariantCulture) / 1000;

    Airbridge.TrackEvent(
        category: AirbridgeCategory.AD_IMPRESSION,
        semanticAttributes: new Dictionary<string, object>()
        {
            { AirbridgeAttribute.ACTION, adUnit },
            { AirbridgeAttribute.LABEL, adFormat },
            { AirbridgeAttribute.VALUE, revenue },
            {
                AirbridgeAttribute.AD_PARTNERS, new Dictionary<string, object>()
                {
                    {
                        "tradPlus", new Dictionary<string, object>()
                        {
                            { "ad_platform", adPlatform },
                            { "ad_network", adNetwork },
                            { "ad_unit", adUnit },
                            { "ad_format", adFormat },
                            { "value", revenue },
                        }
                    }
                }
            },
            { AirbridgeAttribute.CURRENCY, currency }
        }
    );
}

Unity SDK (Previous)

123456789101112131415161718192021222324252627282930313233343536373839404142
TradplusAds.Instance().AddGlobalAdImpression(OnGlobalAdImpression);

// ...

void OnGlobalAdImpression(Dictionary<string, object> adInfo)
{
    string adPlatform = "TradPlus";
    var adNetwork = "";
    var adUnit = "";
    var adFormat = "";
#if UNITY_IOS
    adNetwork = adInfo["adNetworkName"] as string;
    adUnit = adInfo["adunit_id"] as string;
    adFormat = adInfo["adType"] as string;
#else
    adNetwork = adInfo["adSourceName"] as string;
    adUnit = adInfo["tpAdUnitId"] as string;
    adFormat = adInfo["format"] as string;
#endif
    var currency = "USD";
    var revenue = double.Parse(adInfo["ecpm"] as string, System.Globalization.CultureInfo.InvariantCulture) / 1000;
        
    AirbridgeEvent @event = new AirbridgeEvent("airbridge.adImpression");

    var tradPlus = new Dictionary<string, object>();
    tradPlus["ad_platform"] = adPlatform;
    tradPlus["ad_network"] = adNetwork;
    tradPlus["ad_unit"] = adUnit;
    tradPlus["ad_format"] = adFormat;
    tradPlus["value"] = revenue;

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

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

    AirbridgeUnity.TrackEvent(@event);
}