הגדרת תכונות מתקדמות

בחירת פלטפורמה: Android iOS Android (גרסה קודמת)

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

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

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

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

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

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

מפעילים את 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

פקדי סרטונים

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

התנהגות בתחילת ההשתקה

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

קוראים לפונקציה 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. מציגים את תצוגת הפקדים המותאמים אישית כצאצא של תצוגת המודעה המותאמת. הגישה הזו מאפשרת לחישובי הניראות של Open Measurement להתייחס לפקדים המותאמים אישית כאל חסימה ידידותית.
  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 של צד שלישי לצורך עיבוד לא מגיבים להגדרה של הוראות מותאמות אישית ללחיצה.