高级设置
广告位
您可以为每个广告单元设置广告位名称 (例如 “Rewarded VideoLevels”、“INTER_levelEnd” 或 “RewardedVideoCoinStore”)。 这可以帮助您汇总不同广告位类别的统计数据。 下面的片段展示了如何为不同的广告格式设置广告位名称。
MaxSdk.CreateBanner(«ad-unit-ID», «position»);MaxSdk.SetBannerPlacement(«ad-unit-ID», "«placement»");
MaxSdk.CreateMRec(«ad-unit-ID», «position»);MaxSdk.SetMRecPlacement(«ad-unit-ID», "«placement»");
MaxSdk.ShowInterstitial(«ad-unit-ID», "«placement»");
MaxSdk.ShowRewardedAd(«ad-unit-ID», "«placement»");
静音
您可以在启动应用时将某些 SDK 平台的音频设为关闭。 通过 AppLovin SDK 支持该功能的平台包括 Google 竞价和 Google AdMob、AppLovin、DT Exchange、Google Ad Manager、LINE、Mintegral、腾讯和 Verve。 对于其他平台,请咨询平台客户团队,了解此功能是否可用以及使用方法。
下面的代码片段展示了如何在支持静音的平台中设置静音:
MaxSdk.SetMuted(true);
MaxSdk.SetMuted(false);
启用详细日志
通过以下方式启用详细日志:
MaxSdk.SetVerboseLogging(true);
要验证是否已成功启用详细日志,请查看 AppLovin SDK 日志初始化部分中是否有 Verbose Logging On: true
行。
AppLovin SDKVersion: 11.4.2⋮Verbose Logging On: true⋮
AppLovin SDK 的日志标签为 “/AppLovinSdk: [AppLovinSdk]
”。
Creative ID 和平台名称
您可以调取各个聚合平台已展示广告的 Creative ID 和平台名称。 请参阅 the Creative Debugger documentation 了解更多信息。
DSP 名称
您可以通过广告的 DspName
属性获取 AppLovin Exchange 投放的 MAX 广告的 DSP 名称:
private void OnInterstitialLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo){ Debug.Log("AppLovin Exchange DSP Name: " + adInfo.DspName);}
展示层级 User Revenue API
从 Unity 插件 4.3.0 版本开始,您可以在客户端访问展示级别的用户收入数据,并且使用此数据来比较不同的来源和 campaign。 您也可以使用 MAX 用户收入 API 访问此数据。
您可以针对所有受支持的平台与 Adjust 等移动监测合作伙伴分享展示层级广告收入数据。
您可以在所有广告生命周期回传中调取收入金额。 以下示例展示了如何在 “ad revenue paid” 回传中执行此操作:
// Attach callbacks based on the ad format(s) you are usingMaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;MaxSdkCallbacks.Banner.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;MaxSdkCallbacks.MRec.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;⋮private void OnAdRevenuePaidEvent(string adUnitId, MaxSdkBase.AdInfo adInfo){ double revenue = adInfo.Revenue;
// Miscellaneous data string countryCode = MaxSdk.GetSdkConfiguration().CountryCode; // "US" for the United States, etc - Note: Do not confuse this with currency code which is "USD" string networkName = adInfo.NetworkName; // Display name of the network that showed the ad string adUnitIdentifier = adInfo.AdUnitIdentifier; // The MAX Ad Unit ID string placement = adInfo.Placement; // The placement this ad's postbacks are tied to string networkPlacement = adInfo.NetworkPlacement; // The placement ID from the network that showed the ad}
您还可以获取收入值的精确度评估,如下所示:
string revenuePrecision = adInfo.RevenuePrecision;
该精确度采用下列值之一:
"publisher_defined"
- 收入金额为开发者指定的价格
"exact"
- 收入金额为实时竞价的结果
"estimated"
- 收入金额基于 Auto-CPM 或 FB 竞价估算
"undefined"
- 未定义收入金额,也没有足够的数据来估算
""
- 收入和精确度无效(例如在测试模式下)
选择性初始化
您可以针对指定广告单元初始化 SDK。 此时,SDK 只会初始化您为指定广告单元配置的广告平台。 (如果未指定任何广告单元,SDK 会假定当前会话需要您的所有广告单元。 此时,SDK 会初始化您为所有广告单元配置的全部平台。) 以下示例展示了如何实施此功能:
MaxSdkCallbacks.OnSdkInitializedEvent += (MaxSdkBase.SdkConfiguration config) => { ⋮};
MaxSdk.InitializeSdk(new[]{"«ad-unit-ID-1»", "«ad-unit-ID-2»"});
Waterfall Information API
Waterfall Information API 可向您展示广告的当前瀑布流 (已加载或加载失败的广告)。 API 会返回瀑布流中每则广告的广告加载状态、延迟、配置信息和聚合平台信息。 如果瀑布流中的广告加载失败,API 会提供错误信息。
Unity 插件 4.3.13 及之后的版本支持该 API。
AdLoadState 值
值 | 解释 |
---|---|
0 | 未尝试加载广告 |
1 | 广告已加载 |
2 | 广告加载失败 |
示例
private void OnInterstitialLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo){ print("Waterfall Name: " + adInfo.WaterfallInfo.Name + " and Test Name: " + adInfo.WaterfallInfo.TestName); print("Waterfall latency was: " + adInfo.WaterfallInfo.LatencyMillis + " milliseconds");
string waterfallInfoStr = ""; foreach (var networkResponse in adInfo.WaterfallInfo.NetworkResponses) { waterfallInfoStr = "Network -> " + networkResponse.MediatedNetwork + "\n...adLoadState: " + networkResponse.AdLoadState + "\n...latency: " + networkResponse.LatencyMillis + " milliseconds" + "\n...credentials: " + networkResponse.Credentials;
if(networkResponse.Error != null) { waterfallInfoStr += "\n...error: " + networkResponse.Error; } } print(waterfallInfoStr);}
private void OnInterstitialLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo){ print("Waterfall Name: " + errorInfo.WaterfallInfo.Name + " and Test Name: " + errorInfo.WaterfallInfo.TestName); print("Waterfall latency was: " + errorInfo.WaterfallInfo.LatencyMillis + " milliseconds");
foreach (var networkResponse in errorInfo.WaterfallInfo.NetworkResponses) { print("Network -> " + networkResponse.MediatedNetwork + "\n...latency: " + networkResponse.LatencyMillis + " milliseconds" + "\n...credentials: " + networkResponse.Credentials + "\n...error: " + networkResponse.Error); }}
输出
Waterfall Name: Default Waterfall and Test Name: ControlWaterfall latency was: 10176 milliseconds
Network -> [MediatedNetworkInfo name: Fyber, adapterClassName: ALInnteractiveMediationAdapter, adapterVersion: 8.1.1.0, sdkVersion: 8.1.1.0] ...latency: 1542 milliseconds ...credentials: System.Collections.Generic.Dictionary`2[System.String,System.Object] ...error: [ErrorInfo code: -5200, message: Unspecified Error, adLoadFailure: Load failed - Failed to load Interstitial ad]
Network -> [MediatedNetworkInfo name: AppLovin, adapterClassName: ALAppLovinMediationAdapter, adapterVersion: 10.3.7, sdkVersion: 10.3.7]...adLoadState: AdLoaded...latency: 245 milliseconds...credentials: System.Collections.Generic.Dictionary`2[System.String,System.Object]
自定义横幅 / MREC 广告刷新
您可以直接在集成中自定义横幅和 MREC 广告的刷新间隔,就像在广告单元 UI 中进行配置一样。 最短刷新间隔为 10 秒。 最长刷新间隔为 120 秒。 超出这些限制的值将被忽略。 以下代码示例展示了如何自定义刷新间隔:
MaxSdk.SetBannerExtraParameter(«ad-unit-ID», "ad_refresh_seconds", «ad-refresh-rate»)MaxSdk.SetMRecExtraParameter(«ad-unit-ID», "ad_refresh_seconds", «ad-refresh-rate»)