הגדרה של תכונות מותאמות מתקדמות

בחירת פלטפורמה: Android iOS Android (Legacy)

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

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

אמצעי בקרה לנכסים

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

אפשרויות ליחס הגובה-רוחב המועדף של המדיה

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

מתקשרים אל NativeAdOptions.Builder.setMediaAspectRatio() עם ערך של NativeAdOptions.MediaAspectRatio.

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

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

בדוגמה הבאה, ה-SDK מקבל הוראה להעדיף תמונה או סרטון עם יחס גובה-רוחב ספציפי.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

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

הגדרות להורדת תמונות

אמצעי הבקרה להורדת תמונות מאפשר לכם להחליט אם ה-SDK יחזיר נכסי תמונות או רק מזהי URI.

מתקשרים אל NativeAdOptions.Builder.setReturnUrlsForImageAssets() עם ערך של boolean.

  • כברירת מחדל, האפשרות להוריד תמונות מושבתת.

  • כשהאפשרות מושבתת, Google Mobile Ads SDK (Legacy) מאכלס בשבילכם גם את התמונה וגם את ה-URI.

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

בדוגמה הבאה, ה-SDK מונחה להחזיר רק את ה-URI.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID")
        .withNativeAdOptions(nativeAdOptions)
        .forNativeAd(
            nativeAd -> {
              List<Uri> imageUris = new ArrayList<>();
              for (Image image : nativeAd.getImages()) {
                imageUris.add(image.getUri());
              }
            })
        .build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build()

val loader =
  AdLoader.Builder(context, "AD_UNIT_ID")
    .withNativeAdOptions(nativeAdOptions)
    .forNativeAd { nativeAd ->
      val imageUris = nativeAd.images.mapNotNull { it.uri }
    }
    .build()

הגדרות להצגת כמה תמונות בבת אחת

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

מתקשרים אל NativeAdOptions.Builder.setRequestMultipleImages() עם ערך של boolean.

  • ההגדרות להצגת כמה תמונות בבת אחת מושבתות כברירת מחדל.

  • אם האפשרות הזו מושבתת, האפליקציה מורה ל-SDK לספק רק את התמונה הראשונה מכל נכס שמכיל סדרה של תמונות.

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

בדוגמה הבאה, ה-SDK מקבל הוראה להחזיר כמה נכסי תמונות.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setRequestMultipleImages(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setRequestMultipleImages(true).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

מיקומי מודעות ב-AdChoices

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

אמצעי בקרה למיקום של AdChoices

אמצעי הבקרה של מיקום AdChoices מאפשרים לבחור באיזו פינה יוצג הסמל של AdChoices.

מתקשרים אל NativeAdOptions.Builder.setAdChoicesPlacement() עם ערך של NativeAdOption.AdChoicesPlacement.

  • אם לא מוגדר מיקום, מיקום הסמל של AdChoices מוגדר לפינה השמאלית העליונה.

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

בדוגמה הבאה אפשר לראות איך מגדירים מיקום מותאם אישית לתמונה של AdChoices.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

תצוגה מותאמת אישית של AdChoices

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

מתקשרים אל NativeAdView.setAdChoicesView() עם ערך של AdChoicesView.

בדוגמה הבאה אפשר לראות איך מגדירים תצוגה בהתאמה אישית של AdChoices, כשהסמל של AdChoices מוצג בתוך AdChoicesView.

Java

NativeAdView nativeAdView = new NativeAdView(context);
AdChoicesView adChoicesView = new AdChoicesView(context);
nativeAdView.setAdChoicesView(adChoicesView);

Kotlin

val nativeAdView = NativeAdView(context)
val adChoicesView = AdChoicesView(context)
nativeAdView.adChoicesView = adChoicesView

פקדי סרטונים

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

התנהגות של השתקה

ההתנהגות "התחלה במצב מושתק" מאפשרת להשבית או להפעיל את האודיו בתחילת הסרטון.

מתקשרים אל VideoOptions.Builder.setStartMuted() עם ערך של boolean.

  • ההגדרה 'התחלה בהשתקה' מופעלת כברירת מחדל.

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

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

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

Java

VideoOptions videoOptions = new VideoOptions.Builder().setStartMuted(false).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setStartMuted(false).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

רכיבי UI להפעלה בהתאמה אישית

כך אפשר לבקש רכיבי UI בהתאמה אישית להפעלת וידאו, להשהיה או להשתקה של הסרטון.

מתקשרים אל VideoOptions.Builder.setCustomControlsRequested() עם ערך של boolean.

  • האפשרות להתאמה אישית של רכיבי UI להפעלה מושבתת כברירת מחדל.

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

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

VideoController.

בדוגמה הבאה אפשר לראות איך מבקשים סרטון עם רכיבי UI מותאמים אישית להפעלה.

Java

VideoOptions videoOptions = new VideoOptions.Builder().setCustomControlsRequested(true).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setCustomControlsRequested(true).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

איך בודקים אם אמצעי הבקרה המותאמים אישית מופעלים

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

Java

MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
  VideoController videoController = mediaContent.getVideoController();
  boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}

Kotlin

val mediaContent = nativeAd.mediaContent
if (mediaContent != null) {
  val videoController = mediaContent.videoController
  val canShowCustomControls = videoController.isCustomControlsEnabled
}

הצגת פקדי וידאו בהתאמה אישית

כדי להציג פקדי וידאו בהתאמה אישית, כדאי לפעול לפי השיטות המומלצות הבאות:

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

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

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

קוראים ל-NativeAdOptions.Builder.enableCustomClickGestureDirection() עם NativeAdOptions.SwipeGestureDirection ו-boolean כדי לציין אם לאפשר נגיעות כקליקים.

  • האפשרות להגדרת מחוות לחיצה מותאמות אישית מושבתת כברירת מחדל.

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

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

בדוגמה הבאה מוטמעת תנועת החלקה מותאמת אישית ימינה, ומוגדרת התנהגות רגילה של הקשה.

Java

NativeAdOptions adOptions =
    new NativeAdOptions.Builder()
        .enableCustomClickGestureDirection(
            NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, /* tapsAllowed= */ true)
        .build();

// ca-app-pub-3940256099942544/2247696110 is a sample ad unit ID that has custom click
// gestures enabled.
AdLoader.Builder builder =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions);

Kotlin

val adOptions =
  NativeAdOptions.Builder()
    .enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, true)
    .build()

val builder = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions)

המתנה לאירועים של תנועות החלקה

כשמתועד קליק של תנועת החלקה, הפונקציה Google Mobile Ads SDK (Legacy) מפעילה את ה-method‏ onAdSwipeGestureClicked() ב-AdListener, בנוסף ל-method‏ onAdClicked() הקיים.

Java

AdLoader adLoader =
    new AdLoader.Builder(context, AD_UNIT_ID)
        .withAdListener(
            new AdListener() {
              // Called when a swipe gesture click is recorded.
              @Override
              public void onAdSwipeGestureClicked() {
                // Called when a swipe gesture click is recorded.
                Log.d(TAG, "A swipe gesture click has occurred.");
              }

              @Override
              public void onAdClicked() {
                // Called when a swipe gesture click or a tap click is recorded, as
                // configured in NativeAdOptions.
                Log.d(TAG, "A swipe gesture click or a tap click has occurred.");
              }
            })
        .build();

Kotlin

val adLoader =
  AdLoader.Builder(context, AD_UNIT_ID)
    .withAdListener(
      object : AdListener() {
        override fun onAdSwipeGestureClicked() {
          // Called when a swipe gesture click is recorded.
          Log.d(TAG, "A swipe gesture click has occurred.")
        }

        override fun onAdClicked() {
          // Called when a swipe gesture click or a tap click is recorded, as
          // configured in NativeAdOptions.
          Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
        }
      }
    )
    .build()

גישור

תנועות קליק בהתאמה אישית פועלות רק במודעות מותאמות שנוצרות על ידי Google Mobile Ads SDK. מקורות למודעות שנדרשים להם ערכות SDK של צד שלישי כדי להציג מודעות לא מגיבים להגדרה של כיווני קליקים בהתאמה אישית.