{"id":17714,"date":"2026-05-21T16:22:55","date_gmt":"2026-05-21T16:22:55","guid":{"rendered":"https:\/\/tenjin.com\/?post_type=docs&#038;p=17714"},"modified":"2026-05-21T16:22:57","modified_gmt":"2026-05-21T16:22:57","password":"","slug":"android-cloudx","status":"publish","type":"docs","link":"https:\/\/tenjin.com\/zh\/docs\/android-cloudx\/","title":{"rendered":"Android \u2013 CloudX"},"content":{"rendered":"<p class=\"wp-block-paragraph\">The Tenjin SDK can listen to CloudX impression level revenue data and send revenue events to Tenjin. This integration will send revenue related data for each ad impression served from CloudX. Here are the steps to integrate:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Install the CloudX Android SDK by following the integration guide:<a href=\"https:\/\/docs.cloudx.io\/en\/android\/integration\"> https:\/\/docs.cloudx.io\/en\/android\/integration<br><br><\/a> Please ensure you have the latest Tenjin Android SDK installed (which includes the cloudXImpressionFromJSON() method).<br><\/li>\n\n\n\n<li>Pass the revenue data to Tenjin from the CloudX CloudXAdRevenueListener callback, using the following sample code.<br><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kotlin<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\" data-no-translation=\"\" data-no-auto-translation=\"\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#2e3440ff;font-style:italic;color:#d8dee9ff\"><span style=\"border-bottom:1px solid rgba(201, 218, 248, 0.2)\">Kotlin<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\" data-no-translation=\"\" data-no-auto-translation=\"\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import com.tenjin.android.TenjinSDK\n\nimport io.cloudx.sdk.CloudXAd\n\nimport io.cloudx.sdk.CloudXAdRevenueListener\n\nimport org.json.JSONObject\n\nclass MainActivity : AppCompatActivity(), CloudXAdRevenueListener {\n\n\u00a0\u00a0\u00a0\u00a0\/\/ Attach this listener to each ad (banner \/ MREC \/ interstitial \/ rewarded)\n\n\u00a0\u00a0\u00a0\u00a0\/\/ before loading the ad, e.g.:\n\n\u00a0\u00a0\u00a0\u00a0\/\/ \u00a0 bannerAd.revenueListener = this\n\n\u00a0\u00a0\u00a0\u00a0override fun onAdRevenuePaid(cloudXAd: CloudXAd) {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Create JSON object for Tenjin\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val impressionData = JSONObject().apply {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0put(\"ad_format\", \u00a0 \u00a0 \u00a0 \u00a0 cloudXAd.adFormat?.toString() ?: \"\")\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0put(\"ad_unit_id\",\u00a0 \u00a0 \u00a0 \u00a0 cloudXAd.adUnitId ?: \"\")\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0put(\"network_name\",\u00a0 \u00a0 \u00a0 cloudXAd.networkName ?: \"\")\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0put(\"network_placement\", cloudXAd.networkPlacement ?: \"\")\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0put(\"placement\", \u00a0 \u00a0 \u00a0 \u00a0 cloudXAd.placement ?: \"\")\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0put(\"revenue\", \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 cloudXAd.revenue)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0put(\"currency\",\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \"USD\")\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val jsonString = impressionData.toString()\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Send to Tenjin\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0TenjinSDK.getInstance(this, \"&lt;YOUR-TENJIN-SDK-KEY>\")\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.eventAdImpressionCloudX(jsonString)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Log.d(\"Tenjin\", \"Sent CloudX impression to Tenjin: $jsonString\")\n\n\u00a0\u00a0\u00a0\u00a0}\n\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\" data-no-translation=\"\" data-no-auto-translation=\"\"><code data-no-translation=\"\" data-no-auto-translation=\"\"><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> com.tenjin.android.TenjinSDK<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> io.cloudx.sdk.CloudXAd<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> io.cloudx.sdk.CloudXAdRevenueListener<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> org.json.JSONObject<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">MainActivity<\/span><span style=\"color: #D8DEE9FF\"> : AppCompatActivity(), <\/span><span style=\"color: #88C0D0\">CloudXAdRevenueListener<\/span><span style=\"color: #D8DEE9FF\"> {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ Attach this listener to each ad (banner \/ MREC \/ interstitial \/ rewarded)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ before loading the ad, e.g.:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ \u00a0 bannerAd.revenueListener = this<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #81A1C1\">override<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">fun<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">onAdRevenuePaid<\/span><span style=\"color: #D8DEE9FF\">(cloudXAd: CloudXAd) {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ Create JSON object for Tenjin<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #81A1C1\">val<\/span><span style=\"color: #D8DEE9FF\"> impressionData <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">JSONObject<\/span><span style=\"color: #D8DEE9FF\">().<\/span><span style=\"color: #88C0D0\">apply<\/span><span style=\"color: #D8DEE9FF\"> {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #A3BE8C\">&quot;ad_format&quot;<\/span><span style=\"color: #D8DEE9FF\">, \u00a0 \u00a0 \u00a0 \u00a0 cloudXAd.adFormat?.<\/span><span style=\"color: #88C0D0\">toString<\/span><span style=\"color: #D8DEE9FF\">() ?: <\/span><span style=\"color: #A3BE8C\">&quot;&quot;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #A3BE8C\">&quot;ad_unit_id&quot;<\/span><span style=\"color: #D8DEE9FF\">,\u00a0 \u00a0 \u00a0 \u00a0 cloudXAd.adUnitId ?: <\/span><span style=\"color: #A3BE8C\">&quot;&quot;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #A3BE8C\">&quot;network_name&quot;<\/span><span style=\"color: #D8DEE9FF\">,\u00a0 \u00a0 \u00a0 cloudXAd.networkName ?: <\/span><span style=\"color: #A3BE8C\">&quot;&quot;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #A3BE8C\">&quot;network_placement&quot;<\/span><span style=\"color: #D8DEE9FF\">, cloudXAd.networkPlacement ?: <\/span><span style=\"color: #A3BE8C\">&quot;&quot;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #A3BE8C\">&quot;placement&quot;<\/span><span style=\"color: #D8DEE9FF\">, \u00a0 \u00a0 \u00a0 \u00a0 cloudXAd.placement ?: <\/span><span style=\"color: #A3BE8C\">&quot;&quot;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #A3BE8C\">&quot;revenue&quot;<\/span><span style=\"color: #D8DEE9FF\">, \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 cloudXAd.revenue)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #A3BE8C\">&quot;currency&quot;<\/span><span style=\"color: #D8DEE9FF\">,\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"color: #A3BE8C\">&quot;USD&quot;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #81A1C1\">val<\/span><span style=\"color: #D8DEE9FF\"> jsonString <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> impressionData.<\/span><span style=\"color: #88C0D0\">toString<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ Send to Tenjin<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0TenjinSDK.<\/span><span style=\"color: #88C0D0\">getInstance<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #81A1C1\">this<\/span><span style=\"color: #D8DEE9FF\">, <\/span><span style=\"color: #A3BE8C\">&quot;&lt;YOUR-TENJIN-SDK-KEY&gt;&quot;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.<\/span><span style=\"color: #88C0D0\">eventAdImpressionCloudX<\/span><span style=\"color: #D8DEE9FF\">(jsonString)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Log.<\/span><span style=\"color: #88C0D0\">d<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #A3BE8C\">&quot;Tenjin&quot;<\/span><span style=\"color: #D8DEE9FF\">, <\/span><span style=\"color: #A3BE8C\">&quot;Sent CloudX impression to Tenjin: $jsonString&quot;<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Java<\/strong><\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\" data-no-translation=\"\" data-no-auto-translation=\"\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#2e3440ff;font-style:italic;color:#d8dee9ff\"><span style=\"border-bottom:1px solid rgba(201, 218, 248, 0.2)\">JavaScript<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\" data-no-translation=\"\" data-no-auto-translation=\"\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import com.tenjin.android.TenjinSDK;\n\nimport io.cloudx.sdk.CloudXAd;\n\nimport io.cloudx.sdk.CloudXAdRevenueListener;\n\nimport org.json.JSONObject;\n\npublic class MainActivity extends AppCompatActivity implements CloudXAdRevenueListener {\n\n\u00a0\u00a0\u00a0\u00a0\/\/ Attach this listener to each ad (banner \/ MREC \/ interstitial \/ rewarded)\n\n\u00a0\u00a0\u00a0\u00a0\/\/ before loading the ad, e.g.:\n\n\u00a0\u00a0\u00a0\u00a0\/\/ \u00a0 bannerAd.setRevenueListener(this);\n\n\u00a0\u00a0\u00a0\u00a0@Override\n\n\u00a0\u00a0\u00a0\u00a0public void onAdRevenuePaid(CloudXAd cloudXAd) {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0try {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0JSONObject impressionData = new JSONObject();\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0impressionData.put(\"format\",\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cloudXAd.getAdFormat() != null ? cloudXAd.getAdFormat().toString() : \"\");\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0impressionData.put(\"ad_unit_id\",\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cloudXAd.getAdUnitId() != null ? cloudXAd.getAdUnitId() : \"\");\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0impressionData.put(\"network_name\",\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cloudXAd.getNetworkName() != null ? cloudXAd.getNetworkName() : \"\");\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0impressionData.put(\"network_placement\",\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cloudXAd.getNetworkPlacement() != null ? cloudXAd.getNetworkPlacement() : \"\");\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0impressionData.put(\"placement\",\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cloudXAd.getPlacement() != null ? cloudXAd.getPlacement() : \"\");\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0impressionData.put(\"revenue\", cloudXAd.getRevenue());\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0impressionData.put(\"currency\", \"USD\");\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0String jsonString = impressionData.toString();\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Send to Tenjin\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0TenjinSDK.getInstance(this, \"&lt;YOUR-TENJIN-SDK-KEY>\")\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.cloudXImpressionFromJSON(jsonString);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Log.d(\"Tenjin\", \"Sent CloudX impression to Tenjin: \" + jsonString);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} catch (JSONException e) {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Log.e(\"Tenjin\", \"Error creating CloudX impression JSON\", e);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0}\n\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\" data-no-translation=\"\" data-no-auto-translation=\"\"><code data-no-translation=\"\" data-no-auto-translation=\"\"><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">com<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">tenjin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">android<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">TenjinSDK<\/span><span style=\"color: #D8DEE9FF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">io<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">cloudx<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">sdk<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">CloudXAd<\/span><span style=\"color: #D8DEE9FF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">io<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">cloudx<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">sdk<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">CloudXAdRevenueListener<\/span><span style=\"color: #D8DEE9FF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">org<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">json<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">JSONObject<\/span><span style=\"color: #D8DEE9FF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">MainActivity<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">extends<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">AppCompatActivity<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">implements<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">CloudXAdRevenueListener<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ Attach this listener to each ad (banner \/ MREC \/ interstitial \/ rewarded)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ before loading the ad, e.g.:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ \u00a0 bannerAd.setRevenueListener(this);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0@<\/span><span style=\"color: #8FBCBB\">Override<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">void<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">onAdRevenuePaid<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #8FBCBB\">CloudXAd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">) {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">try<\/span><span style=\"color: #D8DEE9FF\"> {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">JSONObject<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">impressionData<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">new<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">JSONObject<\/span><span style=\"color: #D8DEE9FF\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">impressionData<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">put<\/span><span style=\"color: #D8DEE9FF\">(&quot;<\/span><span style=\"color: #8FBCBB\">format<\/span><span style=\"color: #D8DEE9FF\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getAdFormat<\/span><span style=\"color: #D8DEE9FF\">() != <\/span><span style=\"color: #8FBCBB\">null<\/span><span style=\"color: #D8DEE9FF\"> ? <\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getAdFormat<\/span><span style=\"color: #D8DEE9FF\">().<\/span><span style=\"color: #8FBCBB\">toString<\/span><span style=\"color: #D8DEE9FF\">() : &quot;&quot;);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">impressionData<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">put<\/span><span style=\"color: #D8DEE9FF\">(&quot;<\/span><span style=\"color: #8FBCBB\">ad_unit_id<\/span><span style=\"color: #D8DEE9FF\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getAdUnitId<\/span><span style=\"color: #D8DEE9FF\">() != <\/span><span style=\"color: #8FBCBB\">null<\/span><span style=\"color: #D8DEE9FF\"> ? <\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getAdUnitId<\/span><span style=\"color: #D8DEE9FF\">() : &quot;&quot;);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">impressionData<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">put<\/span><span style=\"color: #D8DEE9FF\">(&quot;<\/span><span style=\"color: #8FBCBB\">network_name<\/span><span style=\"color: #D8DEE9FF\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getNetworkName<\/span><span style=\"color: #D8DEE9FF\">() != <\/span><span style=\"color: #8FBCBB\">null<\/span><span style=\"color: #D8DEE9FF\"> ? <\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getNetworkName<\/span><span style=\"color: #D8DEE9FF\">() : &quot;&quot;);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">impressionData<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">put<\/span><span style=\"color: #D8DEE9FF\">(&quot;<\/span><span style=\"color: #8FBCBB\">network_placement<\/span><span style=\"color: #D8DEE9FF\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getNetworkPlacement<\/span><span style=\"color: #D8DEE9FF\">() != <\/span><span style=\"color: #8FBCBB\">null<\/span><span style=\"color: #D8DEE9FF\"> ? <\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getNetworkPlacement<\/span><span style=\"color: #D8DEE9FF\">() : &quot;&quot;);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">impressionData<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">put<\/span><span style=\"color: #D8DEE9FF\">(&quot;<\/span><span style=\"color: #8FBCBB\">placement<\/span><span style=\"color: #D8DEE9FF\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getPlacement<\/span><span style=\"color: #D8DEE9FF\">() != <\/span><span style=\"color: #8FBCBB\">null<\/span><span style=\"color: #D8DEE9FF\"> ? <\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getPlacement<\/span><span style=\"color: #D8DEE9FF\">() : &quot;&quot;);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">impressionData<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">put<\/span><span style=\"color: #D8DEE9FF\">(&quot;<\/span><span style=\"color: #8FBCBB\">revenue<\/span><span style=\"color: #D8DEE9FF\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">cloudXAd<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getRevenue<\/span><span style=\"color: #D8DEE9FF\">());<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">impressionData<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">put<\/span><span style=\"color: #D8DEE9FF\">(&quot;<\/span><span style=\"color: #8FBCBB\">currency<\/span><span style=\"color: #D8DEE9FF\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> &quot;<\/span><span style=\"color: #8FBCBB\">USD<\/span><span style=\"color: #D8DEE9FF\">&quot;);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">jsonString<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">impressionData<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">toString<\/span><span style=\"color: #D8DEE9FF\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #616E88\">\/\/ Send to Tenjin<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">TenjinSDK<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">getInstance<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #8FBCBB\">this<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> &quot;&lt;<\/span><span style=\"color: #8FBCBB\">YOUR<\/span><span style=\"color: #D8DEE9FF\">-<\/span><span style=\"color: #8FBCBB\">TENJIN<\/span><span style=\"color: #D8DEE9FF\">-<\/span><span style=\"color: #8FBCBB\">SDK<\/span><span style=\"color: #D8DEE9FF\">-<\/span><span style=\"color: #8FBCBB\">KEY<\/span><span style=\"color: #D8DEE9FF\">&gt;&quot;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.<\/span><span style=\"color: #8FBCBB\">cloudXImpressionFromJSON<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #8FBCBB\">jsonString<\/span><span style=\"color: #D8DEE9FF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">Log<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">d<\/span><span style=\"color: #D8DEE9FF\">(&quot;<\/span><span style=\"color: #8FBCBB\">Tenjin<\/span><span style=\"color: #D8DEE9FF\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> &quot;<\/span><span style=\"color: #8FBCBB\">Sent<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">CloudX<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">impression<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Tenjin<\/span><span style=\"color: #D8DEE9FF\">: &quot; + <\/span><span style=\"color: #8FBCBB\">jsonString<\/span><span style=\"color: #D8DEE9FF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">catch<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #8FBCBB\">JSONException<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">e<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #8FBCBB\">Log<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">e<\/span><span style=\"color: #D8DEE9FF\">(&quot;<\/span><span style=\"color: #8FBCBB\">Tenjin<\/span><span style=\"color: #D8DEE9FF\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> &quot;<\/span><span style=\"color: #8FBCBB\">Error<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">creating<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">CloudX<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">impression<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">JSON<\/span><span style=\"color: #D8DEE9FF\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">e<\/span><span style=\"color: #D8DEE9FF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u00a0\u00a0\u00a0\u00a0}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Here is an example impression level revenue data entry from CloudX:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>\u53c2\u6570<\/strong><\/td><td><strong>\u5fc5\u9700\uff1f<\/strong><\/td><td><strong>\u4f8b\u5b50<\/strong><\/td><\/tr><tr><td>format<\/td><td>\u5426<\/td><td>&#8220;banner&#8221;, &#8220;mrec&#8221;, &#8220;interstitial&#8221;, &#8220;rewarded&#8221;<\/td><\/tr><tr><td>ad_unit_id<\/td><td>\u5426<\/td><td>abc-123-banner<\/td><\/tr><tr><td>network_name<\/td><td>\u5426<\/td><td>meta<\/td><\/tr><tr><td>network_placement<\/td><td>\u5426<\/td><td>1234567890_9876543210<\/td><\/tr><tr><td>placement<\/td><td>\u5426<\/td><td>home_screen<\/td><\/tr><tr><td>revenue<\/td><td>\u662f<\/td><td>0.0123<\/td><\/tr><tr><td>currency<\/td><td>\u5426<\/td><td>USD<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\u76f8\u5173\u6587\u6863\uff1a<a href=\"https:\/\/docs.cloudx.io\/en\/android\/integration\"> https:\/\/docs.cloudx.io\/en\/android\/integration<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>The Tenjin SDK can listen to CloudX impression level revenue data and send revenue events to Tenjin. This integration will send revenue related data for each ad impression served from CloudX. Here are the steps to integrate: Kotlin Java Here is an example impression level revenue data entry from CloudX: ParameterRequired?ExampleformatNo&#8220;banner&#8221;, &#8220;mrec&#8221;, &#8220;interstitial&#8221;, &#8220;rewarded&#8221;ad_unit_idNoabc-123-bannernetwork_nameNometanetwork_placementNo1234567890_9876543210placementNohome_screenrevenueYes0.0123currencyNoUSD reference:&#8230;<\/p>","protected":false},"author":17,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"doc_category":[250],"glossaries":[],"doc_tag":[],"class_list":["post-17714","docs","type-docs","status-publish","hentry","doc_category-cloudx"],"acf":[],"year_month":"2026-05","word_count":705,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"anurag","author_nicename":"anurag","author_url":"https:\/\/tenjin.com\/zh\/blog\/author\/anurag\/"},"doc_category_info":[{"term_name":"CloudX","term_url":"https:\/\/tenjin.com\/zh\/docs\/category\/cloudx\/"}],"doc_tag_info":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android \u2013 CloudX | Tenjin<\/title>\n<meta name=\"description\" content=\"Android \u2013 CloudX Tenjin | %\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tenjin.com\/zh\/docs\/android-cloudx\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android \u2013 CloudX | Tenjin\" \/>\n<meta property=\"og:description\" content=\"Android \u2013 CloudX Tenjin | %\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tenjin.com\/zh\/docs\/android-cloudx\/\" \/>\n<meta property=\"og:site_name\" content=\"Tenjin\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-21T16:22:57+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@TenjinMMP\" \/>\n<meta name=\"twitter:label1\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/android-cloudx\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/android-cloudx\\\/\"},\"author\":{\"name\":\"anurag\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/#\\\/schema\\\/person\\\/e039df04bf002f4a0825fce9d6d5f13b\"},\"headline\":\"Android \u2013 CloudX\",\"datePublished\":\"2026-05-21T16:22:55+00:00\",\"dateModified\":\"2026-05-21T16:22:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/android-cloudx\\\/\"},\"wordCount\":141,\"publisher\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/#organization\"},\"inLanguage\":\"zh-Hans\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/android-cloudx\\\/\",\"url\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/android-cloudx\\\/\",\"name\":\"Android \u2013 CloudX | Tenjin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/#website\"},\"datePublished\":\"2026-05-21T16:22:55+00:00\",\"dateModified\":\"2026-05-21T16:22:57+00:00\",\"description\":\"Android \u2013 CloudX Tenjin | %\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/android-cloudx\\\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tenjin.com\\\/docs\\\/android-cloudx\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/android-cloudx\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/tenjin.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docs\",\"item\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Android \u2013 CloudX\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/#website\",\"url\":\"https:\\\/\\\/tenjin.com\\\/\",\"name\":\"Tenjin\",\"description\":\"Growth Made Simple\",\"publisher\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/#organization\"},\"alternateName\":\"Tenjin - Mobile Measurement Partner\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tenjin.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/#organization\",\"name\":\"Tenjin\",\"url\":\"https:\\\/\\\/tenjin.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/tenjin.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/images.webp\",\"contentUrl\":\"https:\\\/\\\/tenjin.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/images.webp\",\"width\":429,\"height\":117,\"caption\":\"Tenjin\"},\"image\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/TenjinMMP\",\"https:\\\/\\\/www.youtube.com\\\/@TenjinMMP\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/tenjin\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/#\\\/schema\\\/person\\\/e039df04bf002f4a0825fce9d6d5f13b\",\"name\":\"anurag\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g\",\"caption\":\"anurag\"},\"url\":\"https:\\\/\\\/tenjin.com\\\/zh\\\/blog\\\/author\\\/anurag\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android \u2013 CloudX | Tenjin","description":"Android \u2013 CloudX Tenjin | %","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tenjin.com\/zh\/docs\/android-cloudx\/","og_locale":"zh_CN","og_type":"article","og_title":"Android \u2013 CloudX | Tenjin","og_description":"Android \u2013 CloudX Tenjin | %","og_url":"https:\/\/tenjin.com\/zh\/docs\/android-cloudx\/","og_site_name":"Tenjin","article_modified_time":"2026-05-21T16:22:57+00:00","twitter_card":"summary_large_image","twitter_site":"@TenjinMMP","twitter_misc":{"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tenjin.com\/docs\/android-cloudx\/#article","isPartOf":{"@id":"https:\/\/tenjin.com\/docs\/android-cloudx\/"},"author":{"name":"anurag","@id":"https:\/\/tenjin.com\/#\/schema\/person\/e039df04bf002f4a0825fce9d6d5f13b"},"headline":"Android \u2013 CloudX","datePublished":"2026-05-21T16:22:55+00:00","dateModified":"2026-05-21T16:22:57+00:00","mainEntityOfPage":{"@id":"https:\/\/tenjin.com\/docs\/android-cloudx\/"},"wordCount":141,"publisher":{"@id":"https:\/\/tenjin.com\/#organization"},"inLanguage":"zh-Hans"},{"@type":"WebPage","@id":"https:\/\/tenjin.com\/docs\/android-cloudx\/","url":"https:\/\/tenjin.com\/docs\/android-cloudx\/","name":"Android \u2013 CloudX | Tenjin","isPartOf":{"@id":"https:\/\/tenjin.com\/#website"},"datePublished":"2026-05-21T16:22:55+00:00","dateModified":"2026-05-21T16:22:57+00:00","description":"Android \u2013 CloudX Tenjin | %","breadcrumb":{"@id":"https:\/\/tenjin.com\/docs\/android-cloudx\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tenjin.com\/docs\/android-cloudx\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/tenjin.com\/docs\/android-cloudx\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/tenjin.com\/"},{"@type":"ListItem","position":2,"name":"Docs","item":"https:\/\/tenjin.com\/docs\/"},{"@type":"ListItem","position":3,"name":"Android \u2013 CloudX"}]},{"@type":"WebSite","@id":"https:\/\/tenjin.com\/#website","url":"https:\/\/tenjin.com\/","name":"Tenjin","description":"\u8ba9\u589e\u957f\u53d8\u7b80\u5355","publisher":{"@id":"https:\/\/tenjin.com\/#organization"},"alternateName":"Tenjin - Mobile Measurement Partner","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tenjin.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"https:\/\/tenjin.com\/#organization","name":"Tenjin","url":"https:\/\/tenjin.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/tenjin.com\/#\/schema\/logo\/image\/","url":"https:\/\/tenjin.com\/wp-content\/uploads\/2026\/04\/images.webp","contentUrl":"https:\/\/tenjin.com\/wp-content\/uploads\/2026\/04\/images.webp","width":429,"height":117,"caption":"Tenjin"},"image":{"@id":"https:\/\/tenjin.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/TenjinMMP","https:\/\/www.youtube.com\/@TenjinMMP","https:\/\/www.linkedin.com\/company\/tenjin"]},{"@type":"Person","@id":"https:\/\/tenjin.com\/#\/schema\/person\/e039df04bf002f4a0825fce9d6d5f13b","name":"anurag","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/secure.gravatar.com\/avatar\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g","caption":"anurag"},"url":"https:\/\/tenjin.com\/zh\/blog\/author\/anurag\/"}]}},"knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/tenjin.com\/zh\/wp-json\/wp\/v2\/docs\/17714","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tenjin.com\/zh\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/tenjin.com\/zh\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/tenjin.com\/zh\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/tenjin.com\/zh\/wp-json\/wp\/v2\/comments?post=17714"}],"version-history":[{"count":2,"href":"https:\/\/tenjin.com\/zh\/wp-json\/wp\/v2\/docs\/17714\/revisions"}],"predecessor-version":[{"id":17716,"href":"https:\/\/tenjin.com\/zh\/wp-json\/wp\/v2\/docs\/17714\/revisions\/17716"}],"wp:attachment":[{"href":"https:\/\/tenjin.com\/zh\/wp-json\/wp\/v2\/media?parent=17714"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/tenjin.com\/zh\/wp-json\/wp\/v2\/doc_category?post=17714"},{"taxonomy":"glossaries","embeddable":true,"href":"https:\/\/tenjin.com\/zh\/wp-json\/wp\/v2\/glossaries?post=17714"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/tenjin.com\/zh\/wp-json\/wp\/v2\/doc_tag?post=17714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}