NativeAd gösterme
Bir doğal reklam yüklendiğinde Google Mobile Ads SDK'sı, ilgili reklam biçimi için dinleyiciyi çağırır. 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, yayıncıların NativeAd
için kök olarak kullanması gereken bir ViewGroup
sınıfıdır. Tek bir NativeAdView
, tek bir yerel 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>
<!--Add remaining assets such as the image and media view.-->
</LinearLayout>
</com.google.android.gms.ads.nativead.NativeAdView>
Aşağıda, bir NativeAdView
oluşturup NativeAd
ile dolduran bir örnek verilmiştir:
Java
AdLoader.Builder builder = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.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 assets into the ad view.
populateNativeAdView(nativeAd, adView);
frameLayout.removeAllViews();
frameLayout.addView(adView);
}
});
Kotlin
val builder = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd { nativeAd ->
// Assumes you have a placeholder FrameLayout in your View layout
// (with ID fl_adplaceholder) where the ad is to be placed.
val 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
val adView = layoutInflater
.inflate(R.layout.native_ad_layout, null) as NativeAdView
// This method sets the assets into the ad view.
populateNativeAdView(nativeAd, adView)
frameLayout.removeAllViews()
frameLayout.addView(adView)
}
Belirli bir doğal reklama ait tüm öğelerin NativeAdView
düzeninde oluşturulması gerektiğini unutmayın. 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üntülemelerin bu şekilde kaydedilmesi, SDK'nın aşağıdaki gibi görevleri otomatik olarak işlemesine olanak tanır:
- 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 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
Yerel reklam gösterme adımları şunlardır:
NativeAdView
sınıfının bir örneğini oluşturun.Gösterilecek her reklam öğesi için:
- Öğe görünümünü, reklam nesnesindeki öğeyle doldurun.
- Öğe görünümünü
NativeAdView
sınıfına kaydedin.
Yerel reklam düzeniniz büyük bir medya öğesi içeriyorsa
MediaView
öğesini kaydedin.Reklam nesnesini
NativeAdView
sınıfına 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 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 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)
}
Görevler şunlardır:
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, doğal reklam görüntüleme görünümlerini içeren bir XML düzenini şişirir ve ardından
NativeAdView
referansını bulur. Parçanızda veya etkinliğinizde mevcut birNativeAdView
varsa bunu yeniden kullanabileceğinizi ya da düzen dosyası kullanmadan dinamik olarak bir örnek oluşturabileceğinizi unutmayın.Öğe görünümlerini doldurma ve kaydetme
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.
Herkese açık kullanıcı adı tıklamaları
Bu kapsamdaki görüntülemeler için herhangi bir özel tıklama işleyici uygulamayın: doğal reklam görüntülemesi. 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.
Tıklamaları dinlemek için Google Mobile Ads SDK'sı tıklama geri çağırmasını uygulayın:
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. } @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. } override fun onAdClicked() { // Log the click event or other custom behavior. } }) .build()
MediaView'u kaydetme
Yerel reklamınızın düzenine ana resim öğesi eklemek istiyorsanız
ImageView
öğesi yerineMediaView
öğesini kullanmanız gerekir.MediaView
, ana medya öğesini göstermek için tasarlanmış özel birView
öğesidir. video veya resim kullanabilirsiniz.MediaView
, XML düzeninde tanımlanabilir veya dinamik olarak oluşturulabilir. Google herhangi birNativeAdView
görünüm hiyerarşisine yerleştirilmelidir. öğe görünümündedir.MediaView
kullanan uygulamalar,MediaView
'yiNativeAdView
'a kaydettirmelidir:Java
// Populate and register the media asset view. nativeAdView.setMediaView(nativeAdBinding.adMedia);
Kotlin
// Populate and register the media asset view. nativeAdView.mediaView = nativeAdBinding.adMedia
ImageScaleType
MediaView
sınıfı, görüntülenirkenImageScaleType
özelliğini içeriyor. resim. Bir resminMediaView
'te ölçeklendirme şeklini değiştirmek istiyorsanızMediaView
'ninsetImageScaleType()
yöntemini kullanarak ilgiliImageView.ScaleType
'yi ayarlayın: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,MediaContent
örneğiyle ayarlandı:Mevcut bir video öğesi varsa arabelleğe alınır ve
MediaView
içinde oynatılmaya başlar. Video öğesinin kullanılabilir olup olmadığınıhasVideoContent()
Reklam video öğesi içermiyorsa
mainImage
öğesi indirilir ve bunun yerineMediaView
içine yerleştirilir.
Varsayılan olarak,
mainImage
indirilen ilk resim öğesidir. EğersetReturnUrlsForImageAssets(true)
kullanılıyor,mainImage
isenull
mainImage
özelliğini, manuel olarak indirdiğiniz görüntüye ayarlayın. Bu resim, yalnızca video öğesi olmadığında kullanılır.Doğal reklam nesnesini kaydetme
Bu son adımda, yerel reklam nesnesi aşağıdakilerden sorumlu görünüme kaydedilir: görüntüler.
Java
adView.setNativeAd(ad);
Kotlin
adView.setNativeAd(ad)
Reklamı yok etme
Yerel reklamınızı göstermeyi bitirdiğinizde, reklamın düzgün bir şekilde çöp toplanması için reklamı yok etmeniz gerekir.
Java
nativeAd.destroy();
Kotlin
nativeAd.destroy()
GitHub'daki örnekler
Doğal reklamların uygulanmasını tamamlayın örneği:
Sonraki adımlar
Aşağıdaki konuları inceleyin: