SDK Tenjin может получать данные о доходах на уровне показов из CloudX и отправлять события, связанные с доходами, в Tenjin. В рамках этой интеграции будут отправляться данные о доходах по каждому рекламному показу, размещенному через CloudX. Ниже приведены инструкции по интеграции:
- Установите SDK CloudX iOS, следуя инструкциям по интеграции: https://docs.cloudx.io/en/ios/integration
Убедитесь, что у вас установлена последняя версия SDK Tenjin iOS (≥ 1.17.0), которая добавляет поддержку CloudX через категорию TenjinSDK+CloudXILRD. - Передайте данные о выручке в Tenjin с помощью обратного вызова revenueListener (или CloudXAdRevenueListener) из CloudX, используя приведенный ниже пример кода.
Objective-C #
Objective-C
#import <TenjinSDK/TenjinSDK.h>
#import <TenjinSDK/TenjinSDK+CloudXILRD.h>
/**
Invoked when CloudX records an impression and reports revenue for the ad
*/
- (void)didPayRevenueForAd:(CloudXAd *)cloudXAd {
NSLog(@"%s", __PRETTY_FUNCTION__);
// Create JSON object for Tenjin
NSDictionary *impressionDict = @{
@"format": cloudXAd.adFormat ?: @"",
@"ad_unit_id": cloudXAd.adUnitId ?: @"",
@"network_name": cloudXAd.networkName ?: @"",
@"network_placement": cloudXAd.networkPlacement ?: @"",
@"placement": cloudXAd.placement ?: @"",
@"revenue": @(cloudXAd.revenue),
@"currency": @"USD"
};
// Convert to JSON string
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:impressionDict
options:0
error:&error];
if (jsonData && !error) {
NSString *jsonString = [[NSString alloc] initWithData:jsonData
encoding:NSUTF8StringEncoding];
// Send to Tenjin
[TenjinSDK cloudXImpressionFromJSON:jsonString];
NSLog(@"Sent CloudX impression to Tenjin: %@", jsonString);
} else {
NSLog(@"Error creating JSON: %@", error.localizedDescription);
}
}Свифт #
Swift
import TenjinSDK
// Conform to CloudX's revenue listener protocol on your ad delegate
extension MyAdDelegate: CloudXAdRevenueListener {
func onAdRevenuePaid(_ cloudXAd: CloudXAd) {
let impressionDict: [String: Any] = [
"ad_format": cloudXAd.adFormat ?? "",
"ad_unit_id": cloudXAd.adUnitId ?? "",
"network_name": cloudXAd.networkName ?? "",
"network_placement": cloudXAd.networkPlacement ?? "",
"placement": cloudXAd.placement ?? "",
"revenue": cloudXAd.revenue,
"currency": "USD"
]
guard
let jsonData = try? JSONSerialization.data(withJSONObject: impressionDict, options: []),
let jsonString = String(data: jsonData, encoding: .utf8)
else {
print("Error creating CloudX impression JSON")
return
}
// Send to Tenjin
TenjinSDK.cloudXImpression(fromJSON: jsonString)
print("Sent CloudX impression to Tenjin: \(jsonString)")
}
}Привяжите слушатель к каждому рекламному объекту (баннер, MREC, интерстициал, реклама с вознаграждением) до загрузки рекламы, например:
bannerAd.revenueListener = self
Ниже приведён пример ввода данных о выручке по показателям просмотров из CloudX:
| Параметр | Обязательно? | Пример |
| формат | Нет | “banner”, “mrec”, “interstitial”, “rewarded” |
| id_рекламного_блока | Нет | abc-123-баннер |
| имя_сети | Нет | мета |
| размещение_в_сети | Нет | 1234567890_9876543210 |
| размещение | Нет | главный_экран |
| выручка | Да | 0.0123 |
| валюта | Нет | долл. США |