Bild-im-Bild-Anzeigen implementieren (Beta)

Plattform auswählen: Android iOS Unity

Bild im Bild

Bild-im-Bild-Anzeigen werden in einem schwebenden Fenster angezeigt, das über dem Inhalt auf dem Bildschirm liegt, z. B. über Artikeln, Feeds oder Gameplay. Mit diesem Format können Nutzer mit Ihrer App interagieren, während die Anzeige sichtbar bleibt. Wenn Sie Anzeigen präsentieren möchten, die nicht den gesamten Bildschirm einnehmen, wählen Sie dieses Format aus.

In diesem Leitfaden wird beschrieben, wie Sie Bild-im-Bild-Anzeigen in Ihrer App anfordern und präsentieren mit Google Mobile Ads Unity Plugin.

Hinweis

Bevor Sie fortfahren, führen Sie die folgenden Schritte aus:

Anzeige laden

Wenn Sie ein PictureInPictureAd Objekt laden möchten, erstellen Sie eine Anzeigenanfrage und rufen Sie die Methode „load“ auf:

public void LoadPictureInPictureAd()
{
    // Clean up any existing ad before loading a new one.
    if (_pictureInPictureAd != null)
    {
        _pictureInPictureAd.Destroy();
        _pictureInPictureAd = null;
    }

    // Create our request used to load the ad.
    var adRequest = new AdManagerAdRequest();

    // Send the request to load the ad.
    PictureInPictureAd.Load(_adUnitId, adRequest,
        (PictureInPictureAd ad, LoadAdError error) =>
        {
            if (error != null || ad == null)
            {
                Debug.LogWarning(
                    "Picture-in-picture ad failed to load: " + error);
                return;
            }

            // Capture the PictureInPictureAd reference for later use.
            _pictureInPictureAd = ad;
        });
}

Ersetzen Sie _adUnitId durch Ihre Anzeigenblock-ID.

Anzeige präsentieren

Wenn Sie die Bild-im-Bild-Anzeige auf dem Bildschirm präsentieren möchten, rufen Sie die Methode „show“ auf. Im folgenden Beispiel wird die Anzeige an der Standardposition präsentiert:

public void ShowPictureInPictureAd()
{
    // Use the ad reference saved from the Load callback.
    if (_pictureInPictureAd != null)
    {
        _pictureInPictureAd.Show();
    }
    else
    {
        Debug.Log("No ad to show.");
    }
}

Position festlegen

Standardmäßig präsentiert Google Mobile Ads Unity Plugin eine Bild-im-Bild-Anzeige beim ersten Aufruf in der unteren rechten Ecke des Bildschirms oder an der zuletzt bekannten Position, wenn sie bereits präsentiert wurde. Wenn Sie anpassen möchten, wo die Anzeige präsentiert wird, geben Sie beim Präsentieren der Anzeige eine Position an. Im folgenden Beispiel wird die Position oben links auf dem Bildschirm über dem Inhalt festgelegt:

public void ShowPictureInPictureAdTopLeft()
{
    // Use the ad reference saved from the Load callback.
    if (_pictureInPictureAd != null)
    {
        _pictureInPictureAd.Show(PictureInPictureAdPosition.TopLeft);
    }
    else
    {
        Debug.Log("No ad to show.");
    }
}

Alle verfügbaren Positionen finden Sie unter PictureInPictureAdPosition.

Anzeigenereignisse beobachten

Wenn Sie Ereignisse im Lebenszyklus von Bild-im-Bild-Anzeigen verarbeiten möchten, registrieren Sie sich für Anzeigenereignisse, bevor Sie Ihre Anzeige präsentieren. Diese Ereignisse melden Anzeigeninteraktionen wie Klicks und Impressionen. Außerdem werden Bild-im-Bild-spezifische Ereignisse gemeldet, z. B. wenn die Anzeige präsentiert oder ausgeblendet wird:

private void RegisterEventHandlers(PictureInPictureAd ad)
{
    // Raised when the ad is estimated to have earned money.
    ad.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log($"Picture-in-picture ad paid: {adValue.Value} {adValue.CurrencyCode}");
    };
    // Raised when an impression is recorded for an ad.
    ad.OnAdImpressionRecorded += () =>
    {
        Debug.Log("Picture-in-picture ad recorded an impression.");
    };
    // Raised when a click is recorded for an ad.
    ad.OnAdClicked += () =>
    {
        Debug.Log("Picture-in-picture ad recorded a click.");
    };
    // Raised when the picture-in-picture ad is displayed on the screen.
    ad.OnAdShown += () =>
    {
        Debug.Log("Picture-in-picture ad shown.");
    };
    // Raised when the picture-in-picture ad is hidden from the screen.
    ad.OnAdHidden += () =>
    {
        Debug.Log("Picture-in-picture ad hidden.");
    };
    // Raised when an ad opened full screen content.
    ad.OnAdFullScreenContentOpened += () =>
    {
        Debug.Log("Picture-in-picture ad opened full screen content.");
    };
    // Raised when the ad closed full screen content.
    ad.OnAdFullScreenContentClosed += () =>
    {
        Debug.Log("Picture-in-picture ad closed full screen content.");
    };
    // Raised when the ad failed to open full screen content.
    ad.OnAdFullScreenContentFailed += (AdError error) =>
    {
        Debug.LogWarning(
            "Picture-in-picture ad failed to open full screen " +
            "content: " + error);
    };
}

Anzeige ausblenden

Wenn Sie die schwebende Anzeige vom Bildschirm entfernen möchten, rufen Sie die Methode „hide“ auf. Diese Methode ruft das Ereignis „Anzeige ausgeblendet“ auf:

public void HidePictureInPictureAd()
{
    // Use the ad reference saved from the Load callback.
    if (_pictureInPictureAd != null)
    {
        _pictureInPictureAd.Hide();
    }
    else
    {
        Debug.Log("No ad to hide.");
    }
}

Anzeigenressourcen bereinigen

Um Speicherlecks zu vermeiden, heben Sie den Verweis auf das Anzeigenobjekt auf, wenn Ihre App die Anzeige nicht mehr verwendet. Das ist beispielsweise der Fall, wenn Ihre App die Anzeige nicht mehr präsentiert oder mit ihr interagiert:

public void DestroyPictureInPictureAd()
{
    // Use the ad reference saved from the Load callback.
    if (_pictureInPictureAd != null)
    {
        _pictureInPictureAd.Destroy();
        _pictureInPictureAd = null;
    }
}