MobileAds 类提供 Google Mobile Ads SDK 的全局设置。
在 Unity 主线程上引发广告事件
Google Mobile Ads SDK 在不同于 Unity 主线程的线程上引发事件。如果您实现广告事件并与 Unity 对象互动,则 必须将 Google Mobile Ads SDK 事件与 Unity 主线程同步。
您可以手动将广告事件与 Unity 主线程同步,也可以让 Google Mobile Ads SDK 处理同步,从而 自动同步广告事件。
推荐:手动同步广告事件
如需手动同步广告事件,请在主线程上使用 ExecuteInUpdate 方法。在与 UnityEngine 对象互动时,以及在 RaiseAdEventsOnUnityMainThread 属性处于停用状态时,您必须使用 ExecuteInUpdate 方法。
以下示例记录了后台线程,并运行了与 UnityEngine 对象互动的操作:
rewardedAd.OnAdPaid += (AdValue value) =>
{
// Log the ad value immediately.
// Place all time-sensitive code outside of ExecuteInUpdate().
UnityEngine.Debug.Log($"Received ad value of {value.Value} {value.CurrencyCode}.");
MobileAdsEventExecutor.ExecuteInUpdate(() =>
{
// Interact with UnityEngine objects here.
// This method is delayed, don't put time sensitive code here.
});
};
自动同步广告事件
如需让 Google Mobile Ads SDK 同步广告事件,请将
MobileAds.RaiseAdEventsOnUnityMainThread 属性设置为 true:
...
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// When true all events raised by GoogleMobileAds will be raised
// on the Unity main thread. The default value is false.
MobileAds.RaiseAdEventsOnUnityMainThread = true;
}
}
视频广告音量控制
如果您的应用有自己的音量控制,例如自定义的音乐或音效音量,那么向 Google Mobile Ads SDK 披露应用的音量后,视频广告会遵循相关的应用音量设置。这样可确保用户收到的视频广告的音频音量符合预期。
设备音量由音量按钮或操作系统级的音量滑块控制,它决定了设备的音频输出音量。但是,应用可相对于该设备音量独立调节自己的音量水平,从而定制音频体验。
您可以在加载广告之前调用
SetApplicationVolume() 方法,向 Google Mobile Ads SDK 报告相对应用音量。广告音量的有效值范围为 0.0(静音)至 1.0(当前设备音量)。以下示例展示了如何向 SDK 报告相对应用音量:
// Set app volume to be half of current device volume.
MobileAds.SetApplicationVolume(0.5f);
如需告知 SDK 应用音量已静音,请在加载广告之前调用 SetApplicationMuted() 方法:
// Set app to be muted.
MobileAds.SetApplicationMuted(true);
应用音量的默认设置为 1(当前设备音量),且应用不是静音状态。
Cookie 意见征求
如果您的应用有特殊要求,您可以将可选的
ApplicationPreferences 键 gad_has_consent_for_cookies 设置为零,以启用
受限广告
:
// Enable limited ads
ApplicationPreferences.SetInt("gad_has_consent_for_cookies", 0);
Android 代码缩减
借助此 Unity 发布选项,您可以启用 Java 代码缩减。如果您启用缩减大小,还需要创建自定义 ProGuard 文件,以保留 SDK 引用的类。
启用自定义 ProGuard 文件
依次前往 Project Settings(项目设置)> Player(可执行游戏文件)> Android > Publishing Settings(发布设置)> Build(构建), 然后选择:
- 自定义 ProGuard 文件
打开
/Assets/Plugins/Android/proguard-user.txt并添加以下内容:
-keep class com.google.** { public *; }
停用崩溃报告
Google Mobile Ads SDK 会收集崩溃报告,以用于调试和分析 。您可以使用以下代码停用此崩溃报告。以下部分介绍了如何在 Android 和 iOS 上停用崩溃报告。
Android
在
应用的 AndroidManifest.xml 文件中添加 <meta-data> 标记,并将 DISABLE_CRASH_REPORTING 设置为 true:
<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.flag.DISABLE_CRASH_REPORTING"
android:value="true" />
</application>
</manifest>
iOS
调用 DisableSDKCrashReporting 方法,以在 iOS 上停用崩溃报告:
void Awake() {
MobileAds.DisableSDKCrashReporting();
}
获取 Unity 插件版本
如需获取 Unity SDK 版本,请运行以下命令:
// Get the unity SDK version.
Debug.Log("Unity SDK Version: " + MobileAds.GetVersion());
获取平台版本
适用于 Unity 的 Google Mobile Ads SDK 依赖于 Android 和 iOS 平台 SDK。 如需获取平台 SDK 的版本,请运行以下命令:
// Get the underlying platform SDK version.
Debug.Log("Platform SDK Version: " + MobileAds.GetPlatformVersion());