Класс MobileAds предоставляет глобальные настройки для Google Mobile Ads Unity Plugin.
Как вызывать события объявлений в основном потоке Unity
Google Mobile Ads Unity Plugin вызывает события в потоке, отличном от основного потока Unity. Если вы реализуете события объявлений и взаимодействуете с объектами Unity, вам нужно синхронизировать события Google Mobile Ads Unity Plugin с основным потоком Unity.
Синхронизируйте события объявлений с основным потоком Unity вручную или автоматически, разрешив Google Mobile Ads Unity Plugin обрабатывать синхронизацию.
Рекомендуемый вариант: синхронизация событий объявлений вручную
Чтобы синхронизировать события объявлений вручную, используйте метод ExecuteInUpdate в основном потоке. Метод ExecuteInUpdate следует использовать при взаимодействии с объектами UnityEngine и когда свойство RaiseAdEventsOnUnityMainThread отключено.
В следующем примере регистрируется фоновый поток и выполняется действие для взаимодействия с объектами UnityEngine:
// Google Mobile Ads events are raised off the Unity main thread.
// This log is executed off the Unity main thread.
// Write all time-sensitive code before ExecuteInUpdate().
Debug.Log("Executing off the Unity main thread.");
// Use ExecuteInUpdate to run code on the main thread, allowing you to
// interact with Unity UI and GameObjects.
// Changed to fully-qualified name to resolve CS0103
GoogleMobileAds.Common.MobileAdsEventExecutor.ExecuteInUpdate(() =>
{
// This callback may be delayed on Android until the user returns to the app.
Debug.Log("Executing on the Unity main thread.");
// Place all code that interacts with Unity UI and GameObjects inside this callback.
if (_myGameObject != null)
{
_myGameObject.SetActive(true);
}
});
Автоматическая синхронизация событий объявлений
Чтобы Google Mobile Ads Unity Plugin синхронизировал события объявлений, задайте для свойства 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 Unity Plugin информацию о громкости в приложении. Они нужны, чтобы видеореклама показывалась с тем же уровнем громкости, который задан в приложении.
Громкость звука на устройстве определяется кнопками регулировки громкости или соответствующим ползунком в ОС. Однако приложения могут самостоятельно регулировать уровень громкости относительно громкости устройства, чтобы настроить звук.
Вы можете передавать в Google Mobile Ads Unity Plugin информацию об относительной громкости приложения, вызывая метод SetApplicationVolume() перед загрузкой объявления. Допустимые значения громкости объявления: от 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
Если у вашего приложения есть особые требования, вы можете установить для необязательного ключа ApplicationPreferencesgad_has_consent_for_cookies значение 0, чтобы включить ограниченный показ рекламы.
// 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 Unity Plugin собирает отчеты о сбоях для отладки и анализа. Чтобы отключить отчеты о сбоях, следуйте инструкциям для Android и iOS ниже.
Android
Добавьте тег <meta-data> с атрибутом DISABLE_CRASH_REPORTING, для которого задано значение true, в файл AndroidManifest.xml приложения:
<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.flag.DISABLE_CRASH_REPORTING"
android:value="true" />
</application>
</manifest>
iOS
Чтобы отключить отчеты о сбоях на устройствах iOS, вызовите метод DisableSDKCrashReporting:
void Awake() {
MobileAds.DisableSDKCrashReporting();
}
Как узнать версию плагина Unity
Чтобы узнать версию SDK для Unity, выполните следующую команду:
// Get the Unity SDK version.
Debug.Log("Unity SDK Version: " + MobileAds.GetVersion());
Получить версию платформы
Google Mobile Ads Unity Plugin для Unity зависит от SDK платформ Android и iOS. Чтобы узнать версию SDK платформы, выполните следующую команду:
// Get the underlying platform SDK version.
Debug.Log("Platform SDK Version: " + MobileAds.GetPlatformVersion());