NoteThis 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.
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.SDK integration (Android)
SDK integration (Android)
Android SDK
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
)
)
}
}
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 (Deprecated)
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)
}
}
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);
}
}
});
SDK integration (iOS)
SDK integration (iOS)
iOS SDK
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
]
)
- (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 (Deprecated)
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()
- (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];
}
SDK integration (Unity)
SDK integration (Unity)
Unity SDK
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 (Deprecated)
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);
}