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:
- Установите 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 Обратные вызовы, 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 |