Doğal gelişmiş

Doğal Reklam gösterme

Yerel reklam yüklendiğinde Google Mobile Ads SDK'sı karşılık gelen reklam biçimi. Uygulamanız reklamı göstermekten, ancak bunu hemen yapmanız gerekmez. Görüntülü Reklam Ağı'nda reklam biçimlerini daha kolay hale getirdiğimizde, SDK'da yalnızca aşağıdaki gibi bakın.

NativeAdView sınıf

NativeAd biçimi için karşılık gelen NativeAdView sınıfını kullanır. Bu sınıf bir ViewGroup NativeAd için kök olarak kullanmaları gereken bir değerdir. CEVAP tek bir NativeAdView, tek bir doğal reklama karşılık gelir. Reklamın öğelerini (ImageView ve ekran görüntüsü öğesi), NativeAdView öğesinin alt öğesi olmalıdır nesnesini tanımlayın.

LinearLayout aşağıdaki gibi görünebilir:

<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">
    <LinearLayout
    android:orientation="vertical"
    ... >
        <LinearLayout
        android:orientation="horizontal"
        ... >
          <ImageView
           android:id="@+id/ad_app_icon"
           ... />
          <TextView
            android:id="@+id/ad_headline"
            ... />
         </LinearLayout>


         // Other assets such as image or media view, call to action, etc follow.
         ...
    </LinearLayout>
</com.google.android.gms.ads.nativead.NativeAdView>

NativeAdView ve bir NativeAd ile doldurur:

Java

AdLoader.Builder builder = new AdLoader.Builder(this, "AD_UNIT_ID")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Assumes you have a placeholder FrameLayout in your View layout
            // (with id fl_adplaceholder) where the ad is to be placed.
            FrameLayout frameLayout =
                findViewById(R.id.fl_adplaceholder);
            // Assumes that your ad layout is in a file call native_ad_layout.xml
            // in the res/layout folder
            NativeAdView adView = (NativeAdView) getLayoutInflater()
                .inflate(R.layout.native_ad_layout, null);
            // This method sets the text, images and the native ad, etc into the ad
            // view.
            populateNativeAdView(nativeAd, adView);
            frameLayout.removeAllViews();
            frameLayout.addView(adView);
        }
});

Kotlin

val builder = AdLoader.Builder(this, "AD_UNIT_ID")
    .forNativeAd { nativeAd ->
        // Assumes that your ad layout is in a file call native_ad_layout.xml
        // in the res/layout folder
        val adView = layoutInflater
                .inflate(R.layout.native_ad_layout, null) as NativeAdView
        // This method sets the text, images and the native ad, etc into the ad
        // view.
        populateNativeAdView(nativeAd, adView)
        // Assumes you have a placeholder FrameLayout in your View layout
        // (with id ad_frame) where the ad is to be placed.
        ad_frame.removeAllViews()
        ad_frame.addView(adView)
    }

Belirli bir yerel reklama ait tüm öğelerin NativeAdView düzeni. Google Mobile Ads SDK'sı aşağıdaki durumlarda uyarı kaydetmeye çalışır: yerel öğeler, yerel reklam görüntüleme düzeninin dışında oluşturulur.

Reklam görüntüleme sınıfları, kullanılan görünümü kaydetmek için kullanılan yöntemleri de her bir bağımsız öğe ve bir diğeri NativeAd nesnesini kaydetmek için kullanılır. Görünümlerin bu şekilde kaydedilmesi, SDK'nın görevleri otomatik olarak işlemesine olanak tanır Örneğin:

  • Tıklamaları kaydetme
  • Gösterimlerin, ilk piksel ekranda göründüğünde kaydedilmesi
  • Reklam Seçenekleri yer paylaşımını görüntüleme

Reklam Seçenekleri yer paylaşımı

SDK tarafından her reklam görünümüne bir Reklam Seçenekleri yer paylaşımı eklenir. Şurada yer bırakın: tercih ettiğiniz köşeyi otomatik olarak eklenen Reklam Seçenekleri logosu için doğal reklam görünümü. Ayrıca, yer paylaşımı kolayca görülebildiğinden, arka plan renklerini emin olmanız gerekir. Yer paylaşımının görünümü ve özellikleri hakkında daha fazla bilgi için işlevi için Yerel reklamlar alanına bakın açıklamaları bölümüne gidin.

Reklam ilişkilendirmesi

Görüntülemenin bir reklam olduğunu belirtmek için bir reklam ilişkilendirmesi göstermeniz gerekir. Daha fazla bilgi için politikamızı yönergelerimize bakın.

Kod örneği

Doğal reklam görüntüleme adımları şunlardır:

  1. NativeAdView sınıfının bir örneğini oluşturun.
  2. Görüntülenecek her reklam öğesi için:
    1. Öğe görünümünü, reklam nesnesindeki öğeyle doldurun.
    2. Öğe görünümünü ViewGroup sınıfıyla kaydedin.
  3. MediaView yerel reklam düzeniniz büyük bir medya öğesi içeriyorsa.
  4. Reklam nesnesini ViewGroup sınıfınla kaydedin.

Aşağıda, NativeAd görüntüleyen bir örnek işlev verilmiştir:

Java

private void displayNativeAd(ViewGroup parent, NativeAd ad) {

    // Inflate a layout and add it to the parent ViewGroup.
    LayoutInflater inflater = (LayoutInflater) parent.getContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    NativeAdView adView = (NativeAdView) inflater
            .inflate(R.layout.ad_layout_file, parent);

    // Locate the view that will hold the headline, set its text, and call the
    // NativeAdView's setHeadlineView method to register it.
    TextView headlineView = adView.findViewById<TextView>(R.id.ad_headline);
    headlineView.setText(ad.getHeadline());
    adView.setHeadlineView(headlineView);

    ...
    // Repeat the above process for the other assets in the NativeAd
    // using additional view objects (Buttons, ImageViews, etc).
    ...

    // If the app is using a MediaView, it should be
    // instantiated and passed to setMediaView. This view is a little different
    // in that the asset is populated automatically, so there's one less step.
    MediaView mediaView = (MediaView) adView.findViewById(R.id.ad_media);
    adView.setMediaView(mediaView);

    // Call the NativeAdView's setNativeAd method to register the
    // NativeAdObject.
    adView.setNativeAd(ad);

    // Ensure that the parent view doesn't already contain an ad view.
    parent.removeAllViews();

    // Place the AdView into the parent.
    parent.addView(adView);
}

Kotlin

fun displayNativeAd(parent: ViewGroup, ad: NativeAd) {

    // Inflate a layout and add it to the parent ViewGroup.
    val inflater = parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)
            as LayoutInflater
    val adView = inflater.inflate(R.layout.ad_layout_file, parent) as NativeAdView

    // Locate the view that will hold the headline, set its text, and use the
    // NativeAdView's headlineView property to register it.
    val headlineView = adView.findViewById<TextView>(R.id.ad_headline)
    headlineView.text = ad.headline
    adView.headlineView = headlineView

    ...
    // Repeat the above process for the other assets in the NativeAd using
    // additional view objects (Buttons, ImageViews, etc).
    ...

    val mediaView = adView.findViewById<MediaView>(R.id.ad_media)
    adView.mediaView = mediaView

    // Call the NativeAdView's setNativeAd method to register the
    // NativeAdObject.
    adView.setNativeAd(ad)

    // Ensure that the parent view doesn't already contain an ad view.
    parent.removeAllViews()

    // Place the AdView into the parent.
    parent.addView(adView)
}

Ayrı ayrı görevler şunlardır:

  1. Düzeni şişirme

    Java

    LayoutInflater inflater = (LayoutInflater) parent.getContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    NativeAdView adView = (NativeAdView) inflater
            .inflate(R.layout.ad_layout_file, parent);
    

    Kotlin

    val inflater = parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)
            as LayoutInflater
    val adView = inflater.inflate(R.layout.ad_layout_file, parent) as NativeAdView
    

    Bu kod, yerel bir öğe görüntülemek için görünümler içeren XML düzenini şişiriyor reklamını yapabilir ve ardından NativeAdView öğesine bir referans bulabilir. Şunu da yapabileceğinizi unutmayın: Parçanızda veya etkinliğinizde varsa mevcut bir NativeAdView öğesini yeniden kullanma ya da kullanmadan da dinamik olarak örnek oluşturabilirsiniz.

  2. Öğe görünümlerini doldurup kaydedin

    Bu örnek kod, başlığı görüntülemek için kullanılan görünümü bulur ve metni ayarlar reklam nesnesi tarafından sağlanan dize öğesini kullanır ve bunu NativeAdView nesne:

    Java

    TextView headlineView = adView.findViewById<TextView>(R.id.ad_headline);
    headlineView.setText(ad.getHeadline());
    adView.setHeadlineView(headlineView);
    

    Kotlin

    val headlineView = adView.findViewById<TextView>(R.id.ad_headline)
    headlineView.text = ad.headline
    adView.headlineView = headlineView
    

    Bu görünümü bulma, değerini belirleme ve onu reklam görüntüleme sınıfı, Uygulamanın göstereceği doğal reklam nesnesi.

  3. Tıklamaları yönetme

    Bu kapsamdaki görüntülemeler için herhangi bir özel tıklama işleyici uygulamayın: doğal reklam görüntülemesi. Tıklama etkinliklerini kendiniz gözlemlemek için reklamı kullanın işleyici ile iletişim kurun.

    Reklam görüntüleme öğelerine yapılan tıklamalar, siz doğru şekilde yaptığınız sürece SDK tarafından işlenir. önceki bölümde açıklandığı gibi öğe görünümlerini doldurup kaydedin.

    Aşağıdaki örnekte, bir reklamın dinleyiciye tıklama etkinlikleri:

    Java

    AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
        ...
        .withAdListener(new AdListener() {
            @Override
            public void onAdFailedToLoad(LoadAdError adError) {
                // Handle the failure by logging, altering the UI, and so on.
            }
            @Override
            public void onAdClicked() {
                // Log the click event or other custom behavior.
            }
        })
        .build();
    

    Kotlin

    val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        ...
        .withAdListener(object : AdListener() {
            override fun onAdFailedToLoad(adError: LoadAdError) {
                // Handle the failure by logging, altering the UI, and so on.
            }
        })
        .build()
    
  4. MediaView'u kaydetme

    Lütfen MediaView öğesinin yerine ImageView yerel öğenizin düzenine bir ana resim öğesi eklemek istiyorsanız reklam.

    MediaView, ana medya öğesini göstermek için tasarlanmış özel bir View öğesidir. video veya resim kullanabilirsiniz.

    MediaView, bir XML düzeninde tanımlanabilir veya dinamik bir şekilde oluşturulabilir. Google herhangi bir NativeAdView görünüm hiyerarşisine yerleştirilmelidir. öğe görünümündedir. MediaView kullanan uygulamalar NativeAdView:

    Java

    MediaView mediaView = adView.findViewById(R.id.ad_media);
    adView.setMediaView(mediaView);
    

    Kotlin

    adView.mediaView = adView.findViewById<MediaView>(R.id.ad_media)
    

    Tüm öğe görüntülemelerinde olduğu gibi, medya görünümünde de içeriğin doldurulması gerekir. Bu, getMediaContent() bir MediaView. Burada, medya içeriğini ayarlayan bir kod snippet'i verilmiştir görünüm:

    Java

    mediaView.setMediaContent(nativeAd.getMediaContent());
    

    Kotlin

    mediaView.mediaContent = nativeAd.mediaContent
    

    ImageScaleType

    MediaView sınıfı, görüntülenirken ImageScaleType özelliğini içeriyor. resim. Bir resmin MediaView içinde ölçeklenme şeklini değiştirmek isterseniz setImageScaleType() kullanarak ilgili ImageView.ScaleType MediaView yöntemi:

    Java

    mediaView.setImageScaleType(ImageView.ScaleType.CENTER_CROP);
    

    Kotlin

    mediaView.imageScaleType = ImageView.ScaleType.CENTER_CROP
    

    MediaContent

    MediaContent sınıfı, materyalin medya içeriğiyle ilgili verileri barındırır. yerel reklamdır. Bu reklam, MediaView sınıfı kullanılarak gösterilir. MediaView mediaContent özelliği bir MediaContent örneğiyle ayarlandı:

    • Video öğesi kullanılabilir durumdaysa arabelleğe alınır ve MediaView Video öğesinin kullanılabilir olup olmadığını hasVideoContent()

    • Reklamda video öğesi yoksa mainImage öğesi indirilir. ve MediaView içine yerleştirilir.

    Varsayılan olarak, mainImage indirilen ilk resim öğesidir. Eğer setReturnUrlsForImageAssets(true) kullanılıyor, mainImage ise null mainImage özelliğini, manuel olarak indirdiğiniz görüntüye ayarlayın. Bu resim, yalnızca video öğesi olmadığında kullanılır.

  5. Yerel reklam nesnesini kaydetme

    Bu son adım, yerel reklam nesnesini tüm sorumluluklara sahip olmalıdır:

    Java

    adView.setNativeAd(ad);
    

    Kotlin

    adView.setNativeAd(ad)
    

Reklamı kaldır

Yerel reklamınızı göstermeyi tamamladığınızda, reklamın uygun şekilde toplanmasını sağlar.

Java

nativeAd.destroy();

Kotlin

nativeAd.destroy()

GitHub'daki örnekler

Doğal reklamların uygulanmasını tamamlayın örneği:

Java Kotlin

Sonraki adımlar

Aşağıdaki konuları inceleyin: