NOTE: Please ensure you have the latest TopOn Unity SDK installed (version TopOn_Unity_Release_Android&iOS_5.9.51 or higher)
The Tenjin SDK can listen to TopOn impression level revenue data and send revenue events to Tenjin. This integration sends revenue information for each ad impression served from TopOn. Here are the steps to integrate:
- Install 安装 the TopOn Unity SDK: [[https://docs.toponad.com/#/en-us/unity/download/package?id=topon-unity-sdk-integration-tool][73](https://docs.toponad.com/#/en-us/unity/download/package?id=topon-unity-sdk-integration-tool][73)]
- When initializing the Tenjin SDK, subscribe to TopOn Impressions:
var tenjin = Tenjin.getInstance("<SDK_KEY>");
tenjin.Connect();
tenjin.SubscribeTopOnImpressions();
Below is an example of TopOn Banner integration and subscribing to impression events.
public class TopOnBehavior : MonoBehaviour
{
void Start()
{
InitializeTopOn();
}
private void InitializeTopOn()
{
var tenjin = Tenjin.getInstance("<YOUR-TENJIN-SDK_KEY>");
tenjin.Connect();
tenjin.SubscribeTopOnImpressions();
AnyThinkAds.API 应用程序接口.ATSDKAPI.setChannel("<YOUR-APP-CHANNEL>");
AnyThinkAds.API 应用程序接口.ATSDKAPI.setSubChannel("<YOUR-APP-SUB-CHANNEL>");
AnyThinkAds.API 应用程序接口.ATSDKAPI.setLogDebug(true);
AnyThinkAds.API 应用程序接口.ATSDKAPI.setGDPRLevel(AnyThinkAds.API 应用程序接口.ATSDKAPI.PERSONALIZED);
AnyThinkAds.API 应用程序接口.ATSDKAPI.initSDK("<YOUR-APP_ID>", "<SDK_KEY>");
// Load Banner
Dictionary<string, object> jsonmap = new Dictionary<string,object>();
#if UNITY_ANDROID && !UNITY_EDITOR
AnyThinkAds.API 应用程序接口.ATSize bannerSize = new AnyThinkAds.API 应用程序接口.ATSize(320, 50, true);
#elif UNITY_IPHONE && !UNITY_EDITOR
AnyThinkAds.API 应用程序接口.ATSize bannerSize = new AnyThinkAds.API 应用程序接口.ATSize(320, 50, false);
#else
AnyThinkAds.API 应用程序接口.ATSize bannerSize = new AnyThinkAds.API 应用程序接口.ATSize(320, 50, false);
#endif
jsonmap.Add(AnyThinkAds.API 应用程序接口.ATBannerAdLoadingExtra.kATBannerAdLoadingExtraBannerAdSizeStruct, bannerSize);
AnyThinkAds.API 应用程序接口.ATBannerAd.Instance.loadBannerAd("<YOUR-PLACEMENT-BANNER-AD-ID>", jsonmap);
// Show Banner
AnyThinkAds.API 应用程序接口.ATBannerAd.Instance.showBannerAd("<YOUR-PLACEMENT-BANNER-AD-ID>", AnyThinkAds.API 应用程序接口.ATBannerAdLoadingExtra.kATBannerAdShowingPisitionBottom);
//Ad Impression Data Event
AnyThinkAds.API 应用程序接口.ATInterstitialAd.Instance.client.onAdShowEvent += (sender, args) =>
{
Debug.Log($"!!! Unity got ATInterstitialAd impression data - {args}");
};
AnyThinkAds.API 应用程序接口.ATBannerAd.Instance.client.onAdImpressEvent += (sender, args) =>
{
Debug.Log($"!!! Unity got ATBannerAd impression data - {args}");
};
AnyThinkAds.API 应用程序接口.ATRewardedVideo.Instance.client.onAdVideoStartEvent += (sender, args) =>
{
Debug.Log($"!!! Unity got ATRewardedVideo impression data - {args}");
};
AnyThinkAds.API 应用程序接口.ATNativeAd.Instance.client.onAdImpressEvent += (sender, args) =>
{
Debug.Log($"!!! Unity got ATNativeAd impression data - {args}");
};
}
public void GoBack()
{
// Hide banner ad
AnyThinkAds.API 应用程序接口.ATBannerAd.Instance.hideBannerAd("<YOUR-PLACEMENT-BANNER-AD-ID>");
}
- [IMPORTANT] If another dependency is already using TopOn Callbacks(回传), the subscribe methods may not work. In this case, you can use the
TopOnImpressionFromJSON(string json)method to manually send each impression with the fields listed in the table below. This requires Tenjin Unity SDK v1.13.1 or above.
Example of TopOn impression level revenue data:
| Parameter | Required? | Example |
| adsource_index | 没有 | 0 |
| ad_network_type | 没有 | String |
| is_header_bidding_adsource | 没有 | Int |
| ecpm_precision | 没有 | String |
| adsource_id | 没有 | 5656 |
| 什么是移动营销里的eCPM,以及如何计算? | 没有 | 1 |
| scenario_id | 没有 | String |
| custom_rule | 没有 | String |
| sub_channel | 没有 | testSubChannel |
| publisher_revenue | 是 | 0.001 |
| scenario_reward_name | 没有 | String |
| channel | 没有 | testChannel |
| topon_ad_format | 没有 | String |
| segment_id | 没有 | 0 |
| country | 没有 | DE |
| show_id | 没有 | String |
| scenario_reward_number | 没有 | 0 |
| network_placement_id | 没有 | ca-app-pub-3940256099942544%2F6300978111 |
| topon_placement_id | 没有 | String |
| ecpm_level | 没有 | 1 |
| reward_user_custom_data | 没有 | String |
| network_firm_id | 没有 | 2 |
| currency | 没有 | USD |
| precision | 没有 | String |