Saat iklan native dimuat, aplikasi Anda akan menerima objek iklan yang berisi aset iklan, seperti gambar, teks, dan video iklan. Aplikasi Anda bertanggung jawab untuk menampilkan aset iklan dalam tata letak tampilan iklan native. Untuk menampilkan iklan native secara mematuhi kebijakan, Google Mobile Ads SDK for React Native menyediakan komponen berikut:
Untuk mengetahui detail tentang cara menampilkan iklan native sesuai kebijakan, lihat Iklan native yang menggunakan native advanced.
Halaman ini membahas cara merender aset iklan native, mengonfigurasi konten media, dan menangani peristiwa iklan menggunakan Google Mobile Ads SDK for React Native.
Prasyarat
Sebelum melanjutkan, lakukan hal berikut:
Menentukan komponen tampilan iklan native
Komponen NativeAdView adalah penampung tingkat teratas untuk tata letak iklan native Anda. Komponen ini menggabungkan semua tampilan aset individual dan mengikat tampilan aset ke instance NativeAd yang dimuat.
Menggabungkan aset Anda dalam komponen NativeAdView akan melakukan hal berikut:
- Mencatat tayangan iklan saat iklan ditampilkan di layar.
- Mencatat klik dan menangani navigasi saat pengguna mengetuk aset interaktif.
- Menampilkan dan memosisikan overlay AdChoices.
Atribusi iklan dan AdChoices
Atribusi iklan dan overlay AdChoices adalah persyaratan kebijakan wajib untuk semua penerapan iklan native Google.
Saat Anda menggabungkan tata letak dalam NativeAdView, Google Mobile Ads SDK for React Native akan otomatis
merender ikon AdChoices di sudut kanan atas tampilan iklan secara default.
Anda tidak perlu menambahkan kode kustom atau tampilan aset agar ikon muncul.
Untuk menyesuaikan penempatan ikon di sudut, lihat Menetapkan fitur native lanjutan.
Mengisi dan mendaftarkan tampilan aset
Untuk mendaftarkan tampilan aset dengan Google Mobile Ads SDK for React Native, gabungkan setiap komponen aset dengan
wrapper NativeAdView.Asset dan tentukan jenis aset menggunakan
objek NativeAdAssetNames. Setiap wrapper NativeAdView.Asset harus berisi satu elemen host React Native, seperti Text, Image, atau View, yang menerima properti nativeID. Untuk
mengetahui detail tentang properti aset yang tersedia, lihat
Class NativeAd.
Tabel berikut mencantumkan jenis aset yang tersedia, properti target, dan contoh pendaftaran tampilan aset:
| Jenis aset | Deskripsi dan contoh |
|---|---|
ADVERTISER |
Properti target: {/* The advertiser or sponsor name (optional). */} {ad.advertiser && ( <NativeAdView.Asset type={NativeAdAssetNames.ADVERTISER}> <Text>{ad.advertiser}</Text> </NativeAdView.Asset> )} |
BODY |
Properti target: {/* Detailed description text (optional). */} {ad.body && ( <NativeAdView.Asset type={NativeAdAssetNames.BODY}> <Text>{ad.body}</Text> </NativeAdView.Asset> )} |
CALL_ |
Properti target: {/* Action button text such as "Install" or "Shop Now" (optional). */} {ad.callToAction && ( <NativeAdView.Asset type={NativeAdAssetNames.CALL_TO_ACTION}> <View> <Text>{ad.callToAction}</Text> </View> </NativeAdView.Asset> )} |
HEADLINE |
Properti target: {/* The main title of the ad (required). */} <NativeAdView.Asset type={NativeAdAssetNames.HEADLINE}> <Text>{ad.headline}</Text> </NativeAdView.Asset> |
ICON |
Properti target: {/* The advertiser logo or app icon (optional). */} {ad.icon && ( <NativeAdView.Asset type={NativeAdAssetNames.ICON}> <Image source={{uri: ad.icon.uri}} /> </NativeAdView.Asset> )} |
PRICE |
Properti target: {/* Price string for products or paid apps (optional). */} {ad.price && ( <NativeAdView.Asset type={NativeAdAssetNames.PRICE}> <Text>{ad.price}</Text> </NativeAdView.Asset> )} |
STAR_ |
Properti target: {/* App rating score from 0 to 5 (optional). */} {ad.starRating !== undefined && ad.starRating > 0 && ( <NativeAdView.Asset type={NativeAdAssetNames.STAR_RATING}> <Text>★ {ad.starRating.toFixed(1)}</Text> </NativeAdView.Asset> )} |
STORE |
Properti target: {/* App store source such as "Google Play" or "App Store" (optional). */} {ad.store && ( <NativeAdView.Asset type={NativeAdAssetNames.STORE}> <Text>{ad.store}</Text> </NativeAdView.Asset> )} |
Selalu render tampilan aset opsional berikut secara bersyarat:
ad.iconad.bodyad.advertiserad.pricead.storead.starRating
Jika iklan menghilangkan aset opsional, aplikasi Anda tidak boleh menampilkan elemen UI kosong.
Menampilkan konten media
Komponen NativeAdMediaView merender aset visual iklan, seperti
video dan gambar. Jika iklan berisi konten video, tampilan media akan melakukan buffering dan
memutar video. Jika iklan hanya berisi konten gambar, tampilan media akan merender
gambar utama.
Menerapkan mode pengubahan ukuran media
Untuk mengontrol cara gambar diskalakan dalam penampung tampilan media, terapkan
properti resizeMode pada komponen NativeAdMediaView:
{/* Video or image media asset (optional). */}
<NativeAdMediaView resizeMode={ResizeMode.COVER} />
Nilai ResizeMode yang tersedia mencakup:
Menetapkan rasio aspek media
Untuk meminta materi iklan yang cocok dengan rasio aspek tata letak tampilan media,
tentukan properti aspectRatio pada
instance NativeAdRequest.
Contoh berikut meminta iklan native dengan rasio aspek media lanskap, menampilkan iklan yang dimuat jika berhasil, dan mencatat pesan error ke dalam log jika gagal:
export async function loadNativeAdWithAspectRatio(
adUnitId: string,
): Promise<NativeAd | null> {
try {
const ad = await NativeAd.load({
adUnitId,
aspectRatio: NativeMediaAspectRatio.LANDSCAPE,
});
return ad;
} catch (error) {
const loadError = error as LoadAdError;
console.error('Failed to load native ad:', loadError.message);
return null;
}
}
Nilai NativeMediaAspectRatio yang tersedia
mencakup hal berikut:
NativeMediaAspectRatio.ANYNativeMediaAspectRatio.LANDSCAPENativeMediaAspectRatio.PORTRAITNativeMediaAspectRatio.SQUARE
Memproses peristiwa iklan
Untuk memberi tahu Anda tentang peristiwa siklus proses iklan, seperti tayangan iklan atau klik,
teruskan callback peristiwa ke komponen NativeAdView. Untuk semua callback yang tersedia, lihat AdEventCallback.
Contoh berikut meneruskan callback peristiwa untuk peristiwa iklan,
seperti tampilan atau penutupan konten layar penuh, ke komponen
NativeAdView:
export function NativeAdWithEvents({ad}: {ad: NativeAd}) {
return (
<NativeAdView
ad={ad}
// Called when the user taps the ad.
onAdClicked={() => {
console.log('Native ad was clicked.');
}}
// Called when an impression is recorded.
onAdImpression={() => {
console.log('Native ad recorded an impression.');
}}
// Called when the ad presents full-screen content.
onAdShowedFullScreenContent={() => {
console.log('Native ad showed full screen content.');
}}
// Called when full-screen content is dismissed.
onAdDismissedFullScreenContent={() => {
console.log('Native ad dismissed full screen content.');
}}
// Called when the ad is estimated to have earned money.
onAdPaid={(adValue: AdValue) => {
console.log(
`Native ad paid: ${adValue.amountMicros} ${adValue.currencyCode}`,
);
}}
/>
);
}
Lihat contoh lengkapnya
Bagian ini membahas contoh lengkap pembuatan komponen kartu iklan native yang dapat digunakan kembali.
Contoh berikut menentukan komponen NativeAdCard, yang menampilkan badge atribusi iklan, merender dan mendaftarkan setiap aset iklan native secara bersyarat, serta merender konten media dengan komponen NativeAdMediaView:
export function NativeAdCard({ad}: {ad: NativeAd}) {
return (
<NativeAdView ad={ad}>
{/* 1. Ad Attribution Badge */}
<View>
<Text>Ad</Text>
</View>
{/* 2. Header: Icon, Headline, Advertiser, and Star Rating */}
<View>
{/* The advertiser logo or app icon (optional). */}
{ad.icon && (
<NativeAdView.Asset type={NativeAdAssetNames.ICON}>
<Image source={{uri: ad.icon.uri}} />
</NativeAdView.Asset>
)}
<View>
{/* The main title of the ad (required). */}
<NativeAdView.Asset type={NativeAdAssetNames.HEADLINE}>
<Text>{ad.headline}</Text>
</NativeAdView.Asset>
{/* The advertiser or sponsor name (optional). */}
{ad.advertiser && (
<NativeAdView.Asset type={NativeAdAssetNames.ADVERTISER}>
<Text>{ad.advertiser}</Text>
</NativeAdView.Asset>
)}
{/* App rating score from 0 to 5 (optional). */}
{ad.starRating !== undefined && ad.starRating > 0 && (
<NativeAdView.Asset type={NativeAdAssetNames.STAR_RATING}>
<Text>★ {ad.starRating.toFixed(1)}</Text>
</NativeAdView.Asset>
)}
</View>
</View>
{/* 3. Media Content */}
{/* Video or image media asset (optional). */}
<NativeAdMediaView resizeMode={ResizeMode.COVER} />
{/* 4. Body Text */}
{/* Detailed description text (optional). */}
{ad.body && (
<NativeAdView.Asset type={NativeAdAssetNames.BODY}>
<Text>{ad.body}</Text>
</NativeAdView.Asset>
)}
{/* 5. Footer: Price, Store, and Call To Action */}
<View>
{/* Price string for products or paid apps (optional). */}
{ad.price && (
<NativeAdView.Asset type={NativeAdAssetNames.PRICE}>
<Text>{ad.price}</Text>
</NativeAdView.Asset>
)}
{/* App store source such as "Google Play" or "App Store" (optional). */}
{ad.store && (
<NativeAdView.Asset type={NativeAdAssetNames.STORE}>
<Text>{ad.store}</Text>
</NativeAdView.Asset>
)}
{/* Action button text such as "Install" or "Shop Now" (optional). */}
{ad.callToAction && (
<NativeAdView.Asset type={NativeAdAssetNames.CALL_TO_ACTION}>
<View>
<Text>{ad.callToAction}</Text>
</View>
</NativeAdView.Asset>
)}
</View>
</NativeAdView>
);
}