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. Sistem tanımlı reklam biçimlerini göstermeyi kolaylaştırmak için SDK, aşağıda açıklanan bazı yararlı kaynaklar sunar.
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ı, her bir öğe için kullanılan görüntülemeyi kaydetmek üzere kullanılan yöntemler ve NativeAd
nesnesinin kendisini kaydetmek için kullanılan bir yöntem de sağlar.
Görünümlerin bu şekilde kaydedilmesi, SDK'nın görevleri otomatik olarak işlemesine olanak tanır
Örneğin:
- Tıklamaları kaydetme
- İlk piksel ekranda göründüğünde gösterimleri kaydetme
- Reklam Seçenekleri yer paylaşımını görüntüleme doğal dolgu için reklam öğeleri (şu anda belirli bir yayıncı grubuyla sınırlıdır)
Reklam Seçenekleri yer paylaşımı
Dolgu reklam olduğunda SDK tarafından reklam görüntüleme olarak bir Reklam Seçenekleri yer paylaşımı eklenir geri döndü. Uygulamanız doğal reklam dolgusu kullanıyorsa tercih ettiğiniz yerde boşluk bırakın köşe otomatik olarak eklenen Reklam Seçenekleri logosu için yerel reklam görünümünüzün büyük bir kısmını görüntüleyebilirsiniz. Ayrıca, Reklam Seçenekleri yer paylaşımının kolayca görülebilmesi önemli olduğundan arka plan renklerini ve resimleri buna göre seçin. Yer paylaşımı hakkında daha fazla bilgi için görünüm ve işlev için programatik yerel reklamlar uygulamasını yönergelerimize bakın.
Programatik yerel reklamlar için reklam ilişkilendirmesi
Programatik yerel reklamlar gösterirken şunlar için bir reklam ilişkilendirmesi göstermeniz gerekir: görünümün bir reklam olduğunu belirtmelidir. 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:
NativeAdView
sınıfının bir örneğini oluşturun.- Görüntülenecek her reklam öğesi için:
- Öğe görünümünü reklam nesnesindeki öğeyle doldurun.
- Öğe görünümünü
ViewGroup
sınıfıyla kaydedin.
-
MediaView
yerel reklam düzeniniz büyük bir medya öğesi içeriyorsa. - 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:
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 birNativeAdView
öğesini yeniden kullanma ya da kullanmadan da dinamik olarak örnek oluşturabilirsiniz.Öğ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, reklam nesnesi tarafından sağlanan dize öğesini kullanarak metnini ayarlar ve
NativeAdView
nesnesine kaydeder: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.
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, "/21775744923/example/native") ... .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, "/21775744923/example/native") ... .withAdListener(object : AdListener() { override fun onAdFailedToLoad(adError: LoadAdError) { // Handle the failure by logging, altering the UI, and so on. } }) .build()
MediaView'i kaydetme
Lütfen
MediaView
öğesinin yerineImageView
yerel öğenizin düzenine bir ana resim öğesi eklemek istiyorsanız reklam.MediaView
, ana medya öğesini göstermek için tasarlanmış özel birView
öğesidir. video veya resim kullanabilirsiniz.MediaView
, bir XML düzeninde tanımlanabilir veya dinamik bir şekilde oluşturulabilir. Google herhangi birNativeAdView
görünüm hiyerarşisine yerleştirilmelidir. öğe görünümündedir.MediaView
kullanan uygulamalarNativeAdView
: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()
birMediaView
. 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ülenirkenImageScaleType
özelliğini içeriyor. resim. Bir resminMediaView
içinde ölçeklenme şeklini değiştirmek istersenizsetImageScaleType()
kullanarak ilgiliImageView.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 birMediaContent
örneğiyle ayarlandığında: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. veMediaView
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.Yerel reklam nesnesini kaydetme
Bu son adımda, yerel reklam nesnesi, gösterilmesinden sorumlu görünüme kaydedilir:
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()
Doğal reklam kodunu test etme
Doğrudan satılan reklamlar
Doğrudan satılan doğal reklamların özelliklerini test etmek isterseniz kullanımını görebilirsiniz:
/21775744923/example/native
Örnek uygulama yükleme ve içerik reklamlarının yanı sıra özel yerel reklam biçimini kullanabilirsiniz.
- Başlık (metin)
- MainImage (resim)
- Caption (text) (Altyazı [metin])
Özel doğal reklam biçiminin şablon kimliğidir: 10063170
.
Yerel dolgu reklamları
Ad Exchange dolgusu şu anda belirli bir yayıncı grubuyla sınırlıdır. Alıcı: yerel dolgu reklamlarının davranışını test etmek için şu Ad Manager reklam birimini kullanın:
/21775744923/example/native-backfill
AdChoices yer paylaşımını içeren örnek uygulama yükleme ve içerik reklamları yayınlar.
Gerçek reklam birimi ve şablon kimliklerinize başvurmak için kodunuzu güncellemeyi unutmayın inceleyin.
GitHub'daki örnekler
Doğal reklamların uygulanmasını tamamlayın örneği:
Sonraki adımlar
Aşağıdaki konuları inceleyin: