SDK Tenjin может получать данные о доходах на уровне показов из CloudX и отправлять события, связанные с доходами, в Tenjin. В рамках этой интеграции будут отправляться данные о доходах по каждому рекламному показу, размещенному через CloudX. Ниже приведены инструкции по интеграции:
- Установите SDK CloudX Android, следуя инструкциям по интеграции: https://docs.cloudx.io/en/android/integration
Убедитесь, что у вас установлена последняя версия SDK Tenjin Android (включающая метод cloudXImpressionFromJSON()). - Передайте данные о выручке в Tenjin из обратного вызова CloudXAdRevenueListener, используя приведенный ниже пример кода.
Kotlin
Kotlin
import com.tenjin.android.TenjinSDK
import io.cloudx.sdk.CloudXAd
import io.cloudx.sdk.CloudXAdRevenueListener
import org.json.JSONObject
class MainActivity : AppCompatActivity(), CloudXAdRevenueListener {
// Attach this listener to each ad (banner / MREC / interstitial / rewarded)
// before loading the ad, e.g.:
// bannerAd.revenueListener = this
override fun onAdRevenuePaid(cloudXAd: CloudXAd) {
// Create JSON object for Tenjin
val impressionData = JSONObject().apply {
put("ad_format", cloudXAd.adFormat?.toString() ?: "")
put("ad_unit_id", cloudXAd.adUnitId ?: "")
put("network_name", cloudXAd.networkName ?: "")
put("network_placement", cloudXAd.networkPlacement ?: "")
put("placement", cloudXAd.placement ?: "")
put("revenue", cloudXAd.revenue)
put("currency", "USD")
}
val jsonString = impressionData.toString()
// Send to Tenjin
TenjinSDK.getInstance(this, "<YOUR-TENJIN-SDK-KEY>")
.eventAdImpressionCloudX(jsonString)
Log.d("Tenjin", "Sent CloudX impression to Tenjin: $jsonString")
}
}Java #
JavaScript
import com.tenjin.android.TenjinSDK;
import io.cloudx.sdk.CloudXAd;
import io.cloudx.sdk.CloudXAdRevenueListener;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity implements CloudXAdRevenueListener {
// Attach this listener to each ad (banner / MREC / interstitial / rewarded)
// before loading the ad, e.g.:
// bannerAd.setRevenueListener(this);
@Override
public void onAdRevenuePaid(CloudXAd cloudXAd) {
try {
JSONObject impressionData = new JSONObject();
impressionData.put("format",
cloudXAd.getAdFormat() != null ? cloudXAd.getAdFormat().toString() : "");
impressionData.put("ad_unit_id",
cloudXAd.getAdUnitId() != null ? cloudXAd.getAdUnitId() : "");
impressionData.put("network_name",
cloudXAd.getNetworkName() != null ? cloudXAd.getNetworkName() : "");
impressionData.put("network_placement",
cloudXAd.getNetworkPlacement() != null ? cloudXAd.getNetworkPlacement() : "");
impressionData.put("placement",
cloudXAd.getPlacement() != null ? cloudXAd.getPlacement() : "");
impressionData.put("revenue", cloudXAd.getRevenue());
impressionData.put("currency", "USD");
String jsonString = impressionData.toString();
// Send to Tenjin
TenjinSDK.getInstance(this, "<YOUR-TENJIN-SDK-KEY>")
.cloudXImpressionFromJSON(jsonString);
Log.d("Tenjin", "Sent CloudX impression to Tenjin: " + jsonString);
} catch (JSONException e) {
Log.e("Tenjin", "Error creating CloudX impression JSON", e);
}
}
}Ниже приведён пример ввода данных о выручке по показателям просмотров из CloudX:
| Параметр | Обязательно? | Пример |
| формат | Нет | “banner”, “mrec”, “interstitial”, “rewarded” |
| id_рекламного_блока | Нет | abc-123-баннер |
| имя_сети | Нет | мета |
| размещение_в_сети | Нет | 1234567890_9876543210 |
| размещение | Нет | главный_экран |
| выручка | Да | 0.0123 |
| валюта | Нет | долл. США |