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

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

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

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

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

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

קוראים ל-NativeAdOptions.Builder.setMediaAspectRatio() עם ערך NativeAdOptions.MediaAspectRatio.

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

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

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

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

שליטה בהורדת תמונות

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

קוראים ל-NativeAdOptions.Builder.setReturnUrlsForImageAssets() עם ערך boolean.
  • אמצעי הבקרה על הורדת תמונות מושבתים כברירת מחדל.

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

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

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

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .forNativeAd(nativeAd -> {
                                List<Uri> imageUris = new ArrayList<>();
                                for (Image image : nativeAd.getImages()) {
                                  imageUris.add(image.getUri());
                                }
                              })
                              .build();

אמצעי בקרה על עומס התמונה

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

קוראים ל-NativeAdOptions.Builder.setRequestMultipleImages() עם ערך boolean.
  • אמצעי הבקרה של עומס התמונה מושבתים כברירת מחדל.

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

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

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

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

מיקומי מודעות של AdChoices

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

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

קוראים ל-NativeAdOptions.Builder.setAdChoicesPlacement() עם ערך NativeAdOption.AdChoicesPlacement.

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

  • אם ההגדרה מוגדרת, הבקשה להצגת חלון AdChoices תוצג במיקום המותאם אישית המבוקש.

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

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

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

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

קוראים ל-NativeAdView.setAdChoicesView() עם ערך AdChoicesView.

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


public void onNativeAdLoaded(NativeAd ad) {
    NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
    AdChoicesView adChoicesView = new AdChoicesView(this);
    nativeAdView.setAdChoicesView(adChoicesView);
}

פקדי סרטונים

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

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

קוראים ל-VideoOptions.Builder.setStartMuted() עם ערך boolean.
  • ההתנהגות של השהיה בהתחלה מופעלת כברירת מחדל.

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

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

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

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

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(adOptions).build();

פקדי הפעלה בהתאמה אישית

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

קוראים ל-VideoOptions.Builder.setCustomControlsRequested() עם ערך boolean.
  • כברירת מחדל, אמצעי הבקרה בהתאמה אישית של ההפעלה מושבתים.

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

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

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

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

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

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(adOptions).build();

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

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

Java

@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
  MediaContent mediaContent = nativeAd.getMediaContent();
  if (mediaContent != null) {
    VideoController videoController = mediaContent.getVideoController();
    boolean canShowCustomControls = videoController.isCustomControlsEnabled();
  }
}

Kotlin

NativeAd.OnNativeAdLoadedListener { ad ->
  val mediaContent = ad.mediaContent
  if (mediaContent != null) {
    val videoController = mediaContent.videoController
    val canShowCustomControls = videoController.isCustomControlsEnabled
  }
}

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

אפשר להשתמש בשיטות המומלצות הבאות כדי ליצור רכיבי UI בהתאמה אישית של פקדי וידאו:

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

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

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

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

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

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

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

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

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

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
AdLoader.Builder builder = new AdLoader
    .Builder(this, '/21775744923/example/native')
    .withNativeAdOptions(adOptions);

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

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

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

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

גישור

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