نقل الإعلانات المدمجة مع المحتوى

تقدّم هذه الصفحة مقارنة بين عمليات تنفيذ الإعلانات المدمجة مع المحتوى بين الإصدار الحالي و"حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة" من الجيل التالي.

تحميل إعلان

يقارن الجدول التالي بين خطوات التنفيذ الرئيسية عند تحميل إعلان مدمج مع المحتوى:

هدف التنفيذ ملف حزمة تطوير البرامج (SDK) من الجيل التالي لإعلانات Google على الأجهزة الجوّالة
تحديد أنواع الإعلانات المدمجة مع المحتوى من خلال طرق فريدة على AdLoader ضمن طلب الإعلان
التعامل مع دالة الاستدعاء المتعلّقة بنجاح تحميل الإعلان لكل نوع من الإعلانات المدمجة مع المحتوى دالة ردّ نداء منفصلة. تتعامل واجهة واحدة NativeAdLoaderCallback مع نجاح تحميل الإعلان لجميع أنواع الإعلانات المدمجة مع المحتوى.
التعامل مع دالة الاستدعاء المتعلّقة بتعذُّر تحميل الإعلانات في أداة معالجة منفصلة في نطاق NativeAdLoaderCallback

تحميل إعلان مدمج مع المحتوى

تعرض الأمثلة التالية كيفية تحميل إعلان مدمج مع المحتوى:

ملف

Kotlin

val adLoader =
  AdLoader.Builder(this, AD_UNIT_ID)
    .forNativeAd(object : NativeAd.OnNativeAdLoadedListener {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Native ad loaded.
      }
    })
    .withAdListener(
      object : AdListener() {
        override fun onAdFailedToLoad(loadAdError: LoadAdError) {
          // Native ad failed to load.
        }
      }
    )
    .build()

adLoader.loadAd(AdRequest.Builder().build())

Java

AdLoader adLoader = new AdLoader.Builder(this, AD_UNIT_ID)
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
      @Override
      public void onNativeAdLoaded(NativeAd nativeAd) {
        // Native ad loaded.
      }
    })
    .withAdListener(new AdListener() {
      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        // Native ad failed to load.
      }
    })
    .build();

adLoader.loadAd(new AdRequest.Builder().build());
حزمة تطوير البرامج (SDK) من الجيل التالي لإعلانات Google على الأجهزة الجوّالة

Kotlin

NativeAdLoader.load(
  NativeAdRequest.Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE)).build(),
  object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Native ad loaded.
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      // Native ad failed to load.
    }
  }
)

Java

NativeAdLoader.load(
  new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAd.NativeAdType.NATIVE)).build(),
  new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
      // Native ad loaded.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Native ad failed to load.
    }
  }
);

تحميل "إعلان مخصص مدمج مع المحتوى"

تحمّل الأمثلة التالية "إعلانًا مخصّصًا مدمجًا مع المحتوى":

ملف

Kotlin

val adLoader =
  AdLoader.Builder(this, AD_UNIT_ID)
    .forCustomFormatAd(CUSTOM_FORMAT_ID,
      object: NativeCustomFormatAd.OnCustomFormatAdLoadedListener {
        override fun onCustomFormatAdLoaded(nativeCustomFormatAd: NativeCustomFormatAd) {
          // Custom native ad loaded.
        }
      },
      object: NativeCustomFormatAd.OnCustomClickListener {
        override fun onCustomClick(
          nativeCustomFormatAd: NativeCustomFormatAd,
          assetName: String
        ) {
          // Custom native ad recorded a click.
        }
      })
    .withAdListener(
      object : AdListener() {
        override fun onAdFailedToLoad(loadAdError: LoadAdError) {
          // Custom native ad failed to load.
        }
      }
    )
    .build()

adLoader.loadAd(AdRequest.Builder().build())

Java

AdLoader adLoader = new AdLoader.Builder(this, AD_UNIT_ID)
    .forCustomFormatAd(CUSTOM_FORMAT_ID,
        new NativeCustomFormatAd.OnCustomFormatAdLoadedListener() {
          @Override
          public void onCustomFormatAdLoaded(NativeCustomFormatAd nativeCustomFormatAd) {
            // Custom native ad loaded.
          }
        },
        new NativeCustomFormatAd.OnCustomClickListener() {
          @Override
          public void onCustomClick(NativeCustomFormatAd nativeCustomFormatAd, String assetName) {
            // Custom native ad recorded a click.
          }
        })
    .withAdListener(new AdListener() {
      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        // Custom native ad failed to load.
      }
    })
    .build();

adLoader.loadAd(new AdRequest.Builder().build());
حزمة تطوير البرامج (SDK) من الجيل التالي لإعلانات Google على الأجهزة الجوّالة

Kotlin

NativeAdLoader.load(
  NativeAdRequest
    .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.CUSTOM_NATIVE))
    .setCustomFormatIds(listOf(CUSTOM_FORMAT_ID))
    .build(),
  object : NativeAdLoaderCallback {
    override fun onCustomNativeAdLoaded(customNativeAd: CustomNativeAd) {
      // Custom native ad loaded.
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      // Custom native ad failed to load.
    }
  }
)

Java

NativeAdLoader.load(
    new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAdType.CUSTOM_NATIVE))
        .setCustomFormatIds(List.of(CUSTOM_FORMAT_ID))
        .build(),
    new NativeAdLoaderCallback() {
      @Override
      public void onCustomNativeAdLoaded(CustomNativeAd customNativeAd) {
        // Custom native ad loaded.
      }

      @Override
      public void onAdFailedToLoad(LoadAdError adError) {
        // Custom native ad failed to load.
      }
    }
);

ضبط خيارات الإعلانات المدمجة مع المحتوى

تضبط الأمثلة التالية خيارات الإعلانات المدمجة مع المحتوى:

ملف

في حزمة تطوير البرامج (SDK) الحالية للإعلانات على الأجهزة الجوّالة، اضبط خيارات الإعلانات المدمجة مع المحتوى على AdLoader.Builder.

Kotlin

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

val adLoader =
  AdLoader.Builder(this, AD_UNIT_ID)
    .withNativeAdOptions(NativeAdOptions.Builder().setVideoOptions(videoOptions).build())
    .build()

Java

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

AdLoader adLoader = new AdLoader.Builder(this, AD_UNIT_ID)
    .withNativeAdOptions(new NativeAdOptions.Builder()
        .setVideoOptions(videoOptions)
        .build())
    .build();
حزمة تطوير البرامج (SDK) من الجيل التالي لإعلانات Google على الأجهزة الجوّالة

في حزمة تطوير البرامج (SDK) من الجيل التالي من "إعلانات Google على الأجهزة الجوّالة"، اضبط خيارات الإعلانات المحلية على NativeAdRequest.Builder.

Kotlin

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

val nativeAdRequest = NativeAdRequest
  .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

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

NativeAdRequest nativeAdRequest = new NativeAdRequest
    .Builder(AD_UNIT_ID, List.of(NativeAd.NativeAdType.NATIVE))
    .setVideoOptions(videoOptions)
    .build();

ضبط عمليات استدعاء أحداث "الإعلانات المدمجة مع المحتوى"

تضبط الأمثلة التالية عمليات معاودة الاتصال الخاصة بأحداث "الإعلانات المدمجة مع المحتوى":

ملف

يجب تسجيل عمليات معاودة الاتصال بحدث الإعلان الأصلي قبل تحميل الإعلان.

Kotlin

val adLoader =
  AdLoader.Builder(this, AD_UNIT_ID)
    .forNativeAd(object : NativeAd.OnNativeAdLoadedListener {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Native ad loaded.
      }
    })
    .withAdListener(
      object : AdListener() {
        override fun onAdOpened() {
          // Native ad opened an overlay that covered the screen.
        }

        override fun onAdClosed() {
          // Native ad closed.
        }

        override fun onAdImpression() {
          // Native ad recorded an impression.
        }

        override fun onAdClicked() {
          // Native ad recorded a click.
        }
      }
    )
    .build()

adLoader.loadAd(AdRequest.Builder().build())

Java

AdLoader adLoader = new AdLoader.Builder(this, AD_UNIT_ID)
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
      @Override
      public void onNativeAdLoaded(NativeAd nativeAd) {
        // Native ad loaded.
      }
    })
    .withAdListener(new AdListener() {
      @Override
      public void onAdOpened() {
        // Native ad opened an overlay that covered the screen.
      }

      @Override
      public void onAdClosed() {
        // Native ad closed.
      }

      @Override
      public void onAdImpression() {
        // Native ad recorded an impression.
      }

      @Override
      public void onAdClicked() {
        // Native ad recorded a click.
      }
    })
    .build();

adLoader.loadAd(new AdRequest.Builder().build());
حزمة تطوير البرامج (SDK) من الجيل التالي لإعلانات Google على الأجهزة الجوّالة

تتيح حزمة "SDK لإعلانات Google على الأجهزة الجوّالة" من الجيل التالي تسجيل عمليات معاودة الاتصال بأحداث الإعلانات بعد تحميل الإعلان الأصلي.

Kotlin

NativeAdLoader.load(
  NativeAdRequest
    .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
    .build(),
  object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Native ad loaded.
      nativeAd.adEventCallback =
        object : NativeAdEventCallback {
          override fun onAdShowedFullScreenContent() {
            // Native ad showed full screen content.
            // Current SDK equivalent: onAdOpened()
          }

          override fun onAdDismissedFullScreenContent() {
            // Native ad dismissed full screen content.
            // Current SDK equivalent: onAdClosed()
          }

          override fun onAdFailedToShowFullScreenContent(
            fullScreenContentError: FullScreenContentError
          ) {
            // Native ad failed to show full screen content.
            // Current SDK equivalent: N/A
          }

          override fun onAdImpression() {
            // Native ad recorded an impression.
          }

          override fun onAdClicked() {
            // Native ad recorded a click.
          }
        }
    }
  }
)

Java

NativeAdLoader.load(
    new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAd.NativeAdType.NATIVE))
        .build(),
    new NativeAdLoaderCallback() {
      @Override
      public void onNativeAdLoaded(NativeAd nativeAd) {
        // Native ad loaded.
        nativeAd.setAdEventCallback(new NativeAdEventCallback() {
          @Override
          public void onAdShowedFullScreenContent() {
            // Native ad showed full screen content.
            // Current SDK equivalent: onAdOpened()
          }

          @Override
          public void onAdDismissedFullScreenContent() {
            // Native ad dismissed full screen content.
            // Current SDK equivalent: onAdClosed()
          }

          @Override
          public void onAdFailedToShowFullScreenContent(FullScreenContentError fullScreenContentError) {
            // Native ad failed to show full screen content.
            // Current SDK equivalent: N/A
          }

          @Override
          public void onAdImpression() {
            // Native ad recorded an impression.
          }

          @Override
          public void onAdClicked() {
            // Native ad recorded a click.
          }
        });
      }
    }
);

عرض إعلان

يتناول هذا القسم الاختلافات في عرض إعلان مدمج مع المحتوى:

استخدام اسم حزمة "حزمة تطوير البرامج (SDK) من الجيل التالي" في "إعلانات Google على الأجهزة الجوّالة"

عند إنشاء NativeAdView في XML، عدِّل اسم الحزمة:

ملف

<com.google.android.gms.ads.nativead.NativeAdView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <!-- Layout assets such as the media view and call to action. -->
</com.google.android.gms.ads.nativead.NativeAdView>
حزمة تطوير البرامج (SDK) من الجيل التالي لإعلانات Google على الأجهزة الجوّالة

<com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <!-- Layout assets such as the media view and call to action. -->
</com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdView>

تسجيل مادة عرض المحتوى الإعلامي باستخدام NativeAdView

تسجّل الأمثلة التالية مادة عرض المحتوى الإعلامي لدى NativeAdView:

ملف

تتوقّع حزمة تطوير البرامج الحالية لـ "إعلانات Google على الأجهزة الجوّالة" أن يتم تسجيل عرض الوسائط باستخدام عرض الإعلان الأصلي قبل تسجيل الإعلان الأصلي. ومع ذلك، لا تفرض واجهة برمجة التطبيقات هذا السلوك.

Kotlin

private fun displayNativeAd(nativeAd: NativeAd) {
  // Inflate the NativeAdView layout.
  val nativeAdBinding = NativeAdBinding.inflate(layoutInflater)

  // Add the NativeAdView to the view hierarchy.
  binding.nativeViewContainer.addView(nativeAdBinding.root)
  val nativeAdView = nativeAdBinding.root

  // Populate and register the asset views.
  nativeAdView.mediaView = nativeAdBinding.adMedia
  // ...

  // Register the native ad with the NativeAdView.
  nativeAdView.setNativeAd(nativeAd)
}

Java

private void displayNativeAd(NativeAd nativeAd) {
  // Inflate the NativeAdView layout
  NativeAdBinding nativeAdBinding = NativeAdBinding.inflate(getLayoutInflater());

  // Add the NativeAdView to the view hierarchy
  binding.nativeViewContainer.addView(nativeAdBinding.getRoot());
  NativeAdView nativeAdView = nativeAdBinding.getRoot();

  // Populate and register the asset views
  nativeAdView.setMediaView(nativeAdBinding.adMedia);
  // ...

  // Register the native ad with the NativeAdView
  nativeAdView.setNativeAd(nativeAd);
}
حزمة تطوير البرامج (SDK) من الجيل التالي لإعلانات Google على الأجهزة الجوّالة

تفرض حزمة تطوير البرامج (SDK) من الجيل التالي لإعلانات Google على الأجهزة الجوّالة تسجيل عرض الوسائط مع عرض الإعلان المدمج مع المحتوى في الوقت نفسه الذي يتم فيه عرض الإعلان المدمج مع المحتوى.

Kotlin

private fun displayNativeAd(nativeAd: NativeAd) {
  // Inflate the NativeAdView layout.
  val nativeAdBinding = NativeAdBinding.inflate(layoutInflater)

  // Add the NativeAdView to the view hierarchy.
  binding.nativeViewContainer.addView(nativeAdBinding.root)
  val nativeAdView = nativeAdBinding.root

  // Populate and register the asset views.
  // ...

  // Register the native ad and media content asset with the NativeAdView.
  val mediaView = nativeAdBinding.adMedia
  nativeAdView.registerNativeAd(nativeAd, mediaView)
}

Java

private void displayNativeAd(NativeAd nativeAd) {
  // Inflate the NativeAdView layout.
  NativeAdBinding nativeAdBinding = NativeAdBinding.inflate(getLayoutInflater());

  // Add the NativeAdView to the view hierarchy.
  binding.nativeViewContainer.addView(nativeAdBinding.getRoot());
  NativeAdView nativeAdView = nativeAdBinding.getRoot();

  // Populate and register the asset views.
  // ...

  // Register the native ad and media content asset with the NativeAdView.
  MediaView mediaView = nativeAdBinding.adMedia;
  nativeAdView.registerNativeAd(nativeAd, mediaView);
}