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

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

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

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

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

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

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

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

מפעילים את NativeAdRequest.Builder.setMediaAspectRatio() עם ערך של NativeAd.NativeMediaAspectRatio.

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

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

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

Kotlin

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build();

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

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

קוראים לפונקציה NativeAdRequest.Builder.disableImageDownloading().

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

  • כשהאפשרות מושבתת, GMA Next-Gen SDK מאכלס בשבילכם גם את התמונה וגם את ה-URI.

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

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

Kotlin

val adRequest = NativeAdRequest.Builder(
    "ca-app-pub-3940256099942544/2247696110",
    listOf(NativeAd.NativeAdType.NATIVE))
    .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .disableImageDownloading()
    .build()

val adCallback: NativeAdLoaderCallback =
  object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Get the image uri.
      val imageUri = nativeAd.image?.uri
    }
  };

// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .disableImageDownloading()
  .build();

NativeAdLoaderCallback adLoaderCallback =
  new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      // Get the image uri.
      Uri imageUri = nativeAd.getImage().getUri();
    }
  };

// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);

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

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

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

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

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

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

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

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

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

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

מפעילים את NativeAdRequest.Builder.setAdChoicesPlacement() עם ערך של NativeAdRequest.AdChoicesPlacement.

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

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

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

Kotlin

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build();

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

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

קוראים לפונקציה NativeAdView.setAdChoicesView() עם ערך AdChoicesView.

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

Kotlin

override fun onNativeAdLoaded(nativeAd: NativeAd) {
  val nativeAdView = NativeAdView(applicationContext)
  val adChoicesView = AdChoicesView(this)
  nativeAdView.adChoicesView = adChoicesView
}

Java

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

פקדי סרטונים

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

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

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

קוראים ל-VideoOptions.Builder.setStartMuted() עם ערך boolean וקוראים ל-NativeAdOptions.Builder.setVideoOptions().

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

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

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

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

Kotlin

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

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

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

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

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

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

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

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

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

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

VideoOptions.Builder.setCustomControlsRequested().

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

Kotlin

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

val adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

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

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

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

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

Kotlin

  val adCallback: NativeAdLoaderCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        val mediaContent = nativeAd.mediaContent;
        if (mediaContent != null) {
          val videoController = mediaContent.videoController;
          val canShowCustomControls = videoController?.isCustomControlsEnabled();
        }
      }
    };

Java

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

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

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

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

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

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

מפעילים את NativeAdRequest.Builder.enableCustomClickGestureDirection() עם NativeAd.SwipeGestureDirection וערך boolean.

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

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

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

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

Kotlin

val adRequest =
  NativeAdRequest.Builder(AD_UNIT_ID, listOf(NativeAdType.NATIVE))
    .enableCustomClickGestureDirection(
      SwipeGestureDirection.RIGHT,
      /* customClickGestureAllowTaps= */ true,
    )
    .build()

Java

NativeAdRequest adRequest =
    new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAdType.NATIVE))
        .enableCustomClickGestureDirection(
            SwipeGestureDirection.RIGHT, /* customClickGestureAllowTaps= */ true)
        .build();

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

כדי להאזין לאירועים של תנועת החלקה, מפעילים את NativeAd.setAdEventCallback() עם NativeAdEventCallback ומטמיעים את השיטה onAdSwipeGestureClicked().

Kotlin

  val adCallback: NativeAdLoaderCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Implement the onAdSwipeGestureClicked() method.
        val nativeAdCallback: NativeAdEventCallback = object : NativeAdEventCallback {
          override fun onAdSwipeGestureClicked() {
            // A swipe gesture click has occurred.
          }
        }
      }
    }
  // Load the native ad with the ad request and callback.
  NativeAdLoader.load(adRequest, adCallback)

Java

  NativeAdLoaderCallback adCallback =
    new NativeAdLoaderCallback() {
      @Override
      public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
        // Implement the onAdSwipeGestureClicked() method.
        NativeAdEventCallback nativeAdCallback = new NativeAdEventCallback() {
          @Override
          public void onAdSwipeGestureClicked() {
            // A swipe gesture click has occurred.
          }
        };
      }
    };
  // Load the native ad with the ad request and callback.
  NativeAdLoader.load(adRequest, adCallback);

גישור

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