הטמעה של מודעות מסוג 'תמונה בתוך תמונה' (בטא)

בחירת פלטפורמה: Android iOS Unity

תמונה בתוך תמונה

מודעות במצב 'תמונה בתוך תמונה' (PiP) מוצגות בחלון צף שנשאר מעל התוכן במסך, כמו מאמרים, פידים או משחקים. הפורמט הזה מאפשר למשתמשים ליצור אינטראקציה עם האפליקציה בזמן שהמודעה מוצגת. כדי להציג מודעות לרשת המדיה שלא תופסות את כל המסך, בוחרים בפורמט הזה. מידע נוסף על מודעות בתמונה בתוך תמונה

במדריך הזה מוסבר איך לבקש ולהציג מודעות במצב 'תמונה בתוך תמונה' באפליקציה באמצעות Google Mobile Ads Unity Plugin.

לפני שמתחילים

לפני שממשיכים, צריך לבצע את הפעולות הבאות:

  • מפעילים מודעות בדיקה ומשתמשים במזהים הבאים של יחידות מודעות ייעודיות לבדיקה:

    Android

    ca-app-pub-3940256099942544/9657123429
    

    iOS

    ca-app-pub-3940256099942544/8810945611
    

טעינת מודעה

כדי לטעון אובייקט PictureInPictureAd, יוצרים בקשה להצגת מודעה ומפעילים את שיטת הטעינה:

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 AdRequest();

    // 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;
        });
}

מחליפים את _adUnitId במזהה יחידת המודעות.

הצגת המודעה

כדי להציג את המודעה בפורמט "תמונה בתוך תמונה" במסך, צריך להפעיל את השיטה show. בדוגמה הבאה המודעה מוצגת במיקום ברירת המחדל:

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

הגדרת המיקום

כברירת מחדל, כשמודעה מוצגת בפעם הראשונה ב-Google Mobile Ads Unity Plugin, היא מופיעה במצב 'תמונה בתוך תמונה' בפינה השמאלית התחתונה של המסך, או במיקום האחרון שבו היא הוצגה אם היא כבר הוצגה בעבר. כדי להתאים אישית את המיקום שבו המודעה תוצג, צריך לציין מיקום כשמציגים את המודעה. בדוגמה הבאה מוגדרת המיקום בחלק העליון של התוכן בפינה השמאלית העליונה של המסך:

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.");
    }
}

כאןPictureInPictureAdPosition אפשר לראות את כל המשרות הפנויות.

האזנה לאירועי מודעות

כדי לטפל באירועים במחזור החיים של מודעות בתמונה בתוך תמונה, צריך להירשם לאירועים שקשורים למודעות לפני שמציגים את המודעה. האירועים האלה מדווחים על אינטראקציות עם מודעות, כמו קליקים וחשיפות. האירועים האלה מדווחים גם על אירועים ספציפיים של תמונה בתוך תמונה, כמו מתי המודעה מוצגת או מוסתרת:

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);
    };
}

הסתרת המודעה

כדי להסיר את המודעה הצפה מהמסך, צריך להפעיל את ה-method‏ hide. השיטה הזו מפעילה את האירוע של הסתרת המודעה:

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

ניקוי משאבי המודעות

כדי למנוע דליפות זיכרון, צריך להסיר את ההפניה לאובייקט המודעה כשהאפליקציה מסיימת להשתמש במודעה. לדוגמה, אם האפליקציה לא מציגה יותר את המודעה או לא מנהלת איתה אינטראקציה:

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