Ustawienia globalne

Klasa MobileAds udostępnia ustawienia globalne dla Google Mobile Ads Unity Plugin.

Wywoływanie zdarzeń reklamowych w głównym wątku Unity

Google Mobile Ads Unity Plugin wywołuje zdarzenia w innym wątku niż główny wątek Unity. Jeśli implementujesz zdarzenia reklamowe i wchodzisz w interakcje z obiektami Unity, musisz zsynchronizować zdarzenia Google Mobile Ads Unity Plugin z głównym wątkiem Unity.

Zsynchronizuj zdarzenia reklamowe z głównym wątkiem Unity ręcznie lub automatycznie, pozwalając, aby synchronizacją zajął się Google Mobile Ads Unity Plugin.

Zalecane: ręczne synchronizowanie zdarzeń reklamowych

Aby ręcznie zsynchronizować zdarzenia reklamowe, użyj metody ExecuteInUpdate w głównym wątku. Metody ExecuteInUpdate należy używać podczas interakcji z obiektami UnityEngine i gdy właściwość RaiseAdEventsOnUnityMainThread jest wyłączona.

W przykładzie poniżej logujemy wątek w tle i wykonujemy działanie, aby wejść w interakcję z obiektami 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);
    }
});

Automatyzacja synchronizacji zdarzeń reklamowych

Aby umożliwić usłudze Google Mobile Ads Unity Plugin synchronizowanie zdarzeń reklamowych, ustaw właściwość MobileAds.RaiseAdEventsOnUnityMainThread na 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;
    }
}

Kontrolowanie głośności reklam wideo

Jeśli aplikacja ma własną regulację głośności, np. głośność niestandardowej muzyki lub efektów dźwiękowych, ujawnienie głośności aplikacji w Google Mobile Ads Unity Plugin umożliwia reklamom wideo dostosowanie się do ustawień głośności aplikacji. Dzięki temu reklamy wideo wyświetlają się użytkownikom z zamierzonym poziomem głośności.

Głośność urządzenia, kontrolowana za pomocą przycisków głośności lub suwaka głośności na poziomie systemu operacyjnego, określa głośność wyjścia audio urządzenia. Aplikacje mogą jednak niezależnie dostosowywać poziomy głośności względem głośności urządzenia, aby zapewnić lepsze wrażenia dźwiękowe.

Możesz zgłosić względną głośność aplikacji do Google Mobile Ads Unity Plugin, wywołując metodę SetApplicationVolume() przed wczytaniem reklamy. Prawidłowe wartości głośności reklam mieszczą się w zakresie od 0.0 (wyciszenie) do 1.0 (bieżąca głośność urządzenia). Oto przykład, jak zgłosić względną głośność aplikacji do pakietu SDK:

// Set app volume to be half of current device volume.
MobileAds.SetApplicationVolume(0.5f);

Aby poinformować pakiet SDK, że głośność aplikacji została wyciszona, przed wczytaniem reklamy wywołaj metodę SetApplicationMuted():

// Set app to be muted.
MobileAds.SetApplicationMuted(true);

Domyślnie głośność aplikacji jest ustawiona na 1, czyli bieżącą głośność urządzenia, a aplikacja nie jest wyciszona.

Jeśli Twoja aplikacja ma specjalne wymagania, możesz ustawić opcjonalny klucz ApplicationPreferences gad_has_consent_for_cookies na wartość 0, aby włączyć reklamy ograniczone:

// Enable limited ads
ApplicationPreferences.SetInt("gad_has_consent_for_cookies", 0);

Minifikacja na Androidzie

Ta opcja publikowania w Unity umożliwia włączenie minifikacji kodu Java. Jeśli włączysz minifikację, musisz też utworzyć niestandardowy plik ProGuard, aby zachować klasy, do których odwołuje się pakiet SDK.

  1. Włącz niestandardowy plik Proguard

    Kliknij Project Settings > Player > Android > Publishing Settings > Build (Ustawienia projektu > Odtwarzacz > Android > Ustawienia publikowania > Kompilacja) i wybierz:

    • Niestandardowy plik Proguard
  2. Otwórz plik /Assets/Plugins/Android/proguard-user.txt i dodaj te informacje:

-keep class com.google.** { public *; }

Wyłącz zgłaszanie awarii

Google Mobile Ads Unity Plugin zbiera raporty o awariach na potrzeby debugowania i analizy. Aby wyłączyć zgłaszanie awarii, zapoznaj się z sekcjami poniżej dotyczącymi Androida i iOS.

Android

Dodaj tag <meta-data> z atrybutem DISABLE_CRASH_REPORTING ustawionym na true w pliku AndroidManifest.xml aplikacji:

<manifest>
   <application>
       <meta-data
           android:name="com.google.android.gms.ads.flag.DISABLE_CRASH_REPORTING"
           android:value="true" />
   </application>
</manifest>

iOS

Aby wyłączyć raporty o awariach na iOS, wywołaj metodę DisableSDKCrashReporting:

void Awake() {
  MobileAds.DisableSDKCrashReporting();
}

Pobieranie wersji wtyczki Unity

Aby uzyskać wersję pakietu SDK Unity, uruchom to polecenie:

// Get the Unity SDK version.
Debug.Log("Unity SDK Version: " + MobileAds.GetVersion());

Pobieranie wersji platformy

Pakiet Google Mobile Ads Unity Plugin dla Unity zależy od pakietów SDK na Androida i iOS. Aby uzyskać wersję pakietu SDK platformy, uruchom to polecenie:

// Get the underlying platform SDK version.
Debug.Log("Platform SDK Version: " + MobileAds.GetPlatformVersion());