מודעות באנר מותאמות עם עוגן

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

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

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

דרישות מוקדמות

מתי כדאי להשתמש במודעות באנר מותאמות

מודעות באנר מותאמות מחליפות את הפורמט הרגיל של מודעות באנר בגודל 320x50 ואת פורמט הבאנר החכם, והן מחליפות את הפורמט הקיים של מודעות באנר רגילות.

הגדלים האלה משמשים בדרך כלל כמודעות באנר מעוגנות, שננעלות בדרך כלל בחלק העליון או התחתון של המסך.

במקרה של מודעות באנר מעוגנות כאלה, יחס הגובה-רוחב כשמשתמשים במודעות באנר מותאמות יהיה דומה ליחס הגובה-רוחב של מודעות רגילות בגודל 320x50, כפי שאפשר לראות בשלוש הדוגמאות הבאות:


מודעת באנר בגודל 320x50

מודעת באנר מותאמת

מודעת באנר חכמה

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

  • היא משתמשת בכל רוחב שתבחרו, במקום לאלץ את הרוחב להופיע במסך מלא, וכך תוכלו להביא בחשבון את האזור הבטוח ב-iOS ולראות גזירי תצוגה ב-Android.

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

הערות להטמעה

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

  • אתם צריכים לדעת מה רוחב התצוגה שבה המודעה תוצב, וחשוב להביא בחשבון את רוחב המכשיר ואת כל האזורים הבטוחים או החיתוכים הרלוונטיים.
  • ודאו שהרקע של הצפייה במודעה אטום כדי לעמוד בדרישות המדיניות של AdMob, במקרים שבהם מוצגות מודעות בגדלים קטנים יותר שלא ממלאות את מיקום המודעה.
  • חשוב לוודא שמשתמשים בגרסה העדכנית של הפלאגין Google Mobile Ads Unity. לתהליך בחירת הרשת (Mediation), יש להשתמש בגרסה העדכנית של כל מתאם לתהליך בחירת הרשת.
  • הגדלים של מודעות הבאנר המותאמות מתוכננים כך שפועלים בצורה הכי טובה כשמשתמשים ברוחב המלא שזמין. ברוב המקרים, מדובר ברוחב המלא של המסך במכשיר שנמצא בשימוש. חשוב להביא בחשבון את האזורים הבטוחים הרלוונטיים.
  • כאשר משתמשים בממשקי ה-API המותאמים של AdSize, מודעת הבאנר נקבעת על ידי Google Mobile Ads SDK עם גובה אופטימלי של המודעה בהתאם לרוחב.
  • קיימות שלוש שיטות להגדרת גודל מודעה אדפטיבי: AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth לרוחב, AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth לאורך ו-AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth לכיוון הנוכחי בזמן ההפעלה.
  • הגודל המוחזר עבור רוחב נתון במכשיר נתון תמיד יהיה זהה, ולכן לאחר שבודקים את הפריסה במכשיר נתון, תוכלו להיות בטוחים שגודל המודעה לא ישתנה.
  • הגובה של מודעת הבאנר המעוגנת אף פעם לא גדול יותר מ-15% מגובה המכשיר או מהפיקסלים הבלתי תלויים בדחיסות 90, ואף פעם לא קטן מ-50 פיקסלים בלתי תלויים.
  • למודעות באנר ברוחב מלא, אפשר להשתמש בדגל AdSize.FullWidth במקום לציין רוחב ספציפי.

מדריך למתחילים

כדי להטמיע מודעת באנר מעוגנת בגודל מותאם, פועלים לפי השלבים הבאים.

  1. קבלו גודל של מודעת באנר מותאמת. הגודל שתקבלו ישמש לבקשת מודעות באנר מותאמות. כדי לקבל את הגודל של המודעה המותאמת, צריך לפעול לפי השלבים הבאים:
    1. אפשר לקבל את רוחב המכשיר בפיקסלים בלתי תלויים בדחיסות, או להגדיר רוחב משלכם אם אתם לא רוצים להשתמש ברוחב המלא של המסך. מכיוון שממשקי API של Unity, כמו Screen.width מחזירים פיקסלים מוחלטים, צריך לחלק לפי קנה המידה של המכשיר (ניתן לאחזר מ-MobileAds.Utils.GetDeviceScale()).
    2. משתמשים בדגל AdSize.FullWidth למודעות באנר ברוחב מלא.
    3. צריך להשתמש בשיטות הסטטיות המתאימות במחלקה של גודל המודעה, כמו AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width) כדי לקבל אובייקט AdSize דינמי לכיוון הנוכחי.
  2. יוצרים אובייקט BannerView עם המזהה של יחידת המודעות, הגודל המותאם והמיקום הרלוונטי למודעה.
  3. יוצרים אובייקט של בקשה למודעה וטוענים את הבאנר באמצעות method LoadAd() בתצוגה המוכנה של מודעה, בדיוק כמו כשעושים בקשה רגילה למודעת באנר.

קוד לדוגמה

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

using UnityEngine;
using System;
using GoogleMobileAds.Api;

public class AdaptiveBannerSample : MonoBehaviour
{
    private BannerView _bannerView;

    // Use this for initialization
    void Start()
    {
        // Set your test devices.
        // https://developers.google.com/admob/unity/test-ads
        RequestConfiguration requestConfiguration = new RequestConfiguration
        {
            TestDeviceIds = new List<string>
            {
                AdRequest.TestDeviceSimulator,
                // Add your test device IDs (replace with your own device IDs).
                #if UNITY_IPHONE
                "96e23e80653bb28980d3f40beb58915c"
                #elif UNITY_ANDROID
                "75EF8D155528C04DACBBA6F36F433035"
                #endif
            }
        };
        MobileAds.SetRequestConfiguration(requestConfiguration);

        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus status) => 
        {
            RequestBanner();
        });
    }

    public void OnGUI()
    {
        GUI.skin.label.fontSize = 60;
        Rect textOutputRect = new Rect(
          0.15f * Screen.width,
          0.25f * Screen.height,
          0.7f * Screen.width,
          0.3f * Screen.height);
        GUI.Label(textOutputRect, "Adaptive Banner Example");
    }

    private void RequestBanner()
    {
        // These ad units are configured to always serve test ads.
        #if UNITY_EDITOR
            string adUnitId = "unused";
        #elif UNITY_ANDROID
            string adUnitId = "ca-app-pub-3212738706492790/6113697308";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3212738706492790/5381898163";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Clean up banner ad before creating a new one.
        if (_bannerView != null)
        {
            _bannerView.Destroy();
        }

        AdSize adaptiveSize =
                AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);

        _bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);

        // Register for ad events.
        _bannerView.OnBannerAdLoaded += OnBannerAdLoaded;
        _bannerView.OnBannerAdLoadFailed += OnBannerAdLoadFailed;

        AdRequest adRequest = new AdRequest();

        // Load a banner ad.
        _bannerView.LoadAd(adRequest);
    }

    #region Banner callback handlers

    private void OnBannerAdLoaded(object sender, EventArgs args)
    {
        Debug.Log("Banner view loaded an ad with response : "
                 + _bannerView.GetResponseInfo());
        Debug.Log("Ad Height: {0}, width: {1}",
                _bannerView.GetHeightInPixels(),
                _bannerView.GetWidthInPixels());
    }

    private void OnBannerAdLoadFailed(LoadAdError error)
    {
        Debug.LogError("Banner view failed to load an ad with error : "
                + error);
    }

    #endregion
}

כאן הפונקציה AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth משמשת לקבלת הגודל של מודעת באנר במיקום מעוגנת לפי הכיוון הנוכחי של הממשק. כדי לטעון מראש מודעת באנר מעוגנת בכיוון נתון, צריך להשתמש בפונקציה הרלוונטית של AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth ו-AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth.