注意注意:请确保你已安装最新版本的TopOn Unity SDK(版本TopOn_Unity_Release_Android&iOS_5.9.51或更高版本)。
Tenjin SDK可以监听TopOn的展示级收入数据,并将收入事件发送给Tenjin。该集成将发送来自TopOn的每次广告展示所产生的相关收入信息。以下是集成步骤:
- 安装TopOn Unity SDK: https://docs.toponad.com/#/en-us/unity/download/package?id=topon-unity-sdk-integration-tool
- 在初始化Tenjin SDK时,订阅TopOn展示:
C#
var tenjin = Tenjin.getInstance("<SDK_KEY>");
tenjin.Connect();
tenjin.SubscribeTopOnImpressions();以下是 TopOn Banner 集成及订阅展示事件的举例:
C#
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>");
}- 重要 :如果其他dependency已在使用TopOn回传,则订阅方式可能无法生效。在这种情况下,你可以使用
TopOnImpressionFromJSON(string json)方式,手动发送包含下表所列字段的每次展示数据。此功能要求使用Tenjin Unity SDK v1.13.1或更高版本。
TopOn展示级收入数据示例:
| 参数 | 必需? | 例子 |
| adsource_index | 否 | 0 |
| ad_network_type | 否 | 字符串 |
| is_header_bidding_adsource | 否 | Int |
| ecpm_precision | 否 | 字符串 |
| adsource_id | 否 | 5656 |
| ecpm | 否 | 1 |
| scenario_id | 否 | 字符串 |
| custom_rule | 否 | 字符串 |
| sub_channel | 否 | testSubChannel |
| publisher_revenue | 是 | 0.001 |
| scenario_reward_name | 否 | 字符串 |
| channel | 否 | testChannel |
| topon_ad_format | 否 | 字符串 |
| segment_id | 否 | 0 |
| country | 否 | DE |
| show_id | 否 | 字符串 |
| scenario_reward_number | 否 | 0 |
| network_placement_id | 否 | ca-app-pub-3940256099942544%2F6300978111 |
| topon_placement_id | 否 | 字符串 |
| ecpm_level | 否 | 1 |
| reward_user_custom_data | 否 | 字符串 |
| network_firm_id | 否 | 2 |
| currency | 否 | USD |
| precision | 否 | 字符串 |