אפשרויות של מודעות מותאמות

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

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

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

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

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

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

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

מתקשר אל 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 מאכלס את התמונה ואת ה-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()

אמצעי בקרה על מטען ייעודי (payload) של תמונות

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

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

  • הפקדים של מטען הייעודי (payload) של התמונה מושבתים כברירת מחדל.

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