Library iklan Android TV menyediakan antarmuka pengguna bagi pengguna untuk mengontrol pengalaman iklan Anda di Google TV. Panduan ini menjelaskan cara mengintegrasikan Android TV library iklan ke aplikasi PAL Android TV yang ada.
Prasyarat
- Selesaikan panduan Memulai
- Android PAL SDK versi 20.0.1 atau yang lebih tinggi
Transparansi dan kontrol iklan
Library iklan Android TV menyediakan fungsi untuk merender transparansi iklan dan mengontrol fitur (AT&C) selama jeda iklan. Saat pengguna berinteraksi dengan Iklan TV oleh Google selama iklan in-stream, menu AT&C dirender sebagai sistem overlay oleh aplikasi peluncur TV, yang menampilkan URL singkat, respons cepat (kode QR) untuk mengetahui lebih lanjut iklan dan tombol untuk berhenti menampilkan iklan yang sama.
Ikon Iklan TV oleh Google harus dirender menggunakan ikon VAST yang sama persyaratan rendering sebagai AdChoices ikon.
Mengklik ikon Iklan TV oleh Google akan menampilkan URL singkat dan kode QR kepada pengguna untuk halaman Tentang iklan ini (ATA).
Mengintegrasikan library iklan Android TV
Mengimpor koleksi iklan ATV
Tambahkan dependensi berikut untuk library iklan Android TV ke tingkat aplikasi
File Gradle, biasanya app/build.gradle
:
dependencies {
...
implementation 'com.google.android.tv:tv-ads:1.0.0'
}
Mendeklarasikan izin AD_ID
Agar library iklan Android TV dapat mengakses tab Iklan
ID, tambahkan
baris berikut ke AndroidManifest.xml
Anda:
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
Mengintegrasikan dengan PAL SDK
Library iklan Android TV menggunakan
SignalCollector
untuk mengumpulkan ID pada perangkat yang diperlukan untuk meminta iklan. PAL
SDK ini menggunakan
NonceRequest.Builder
untuk membaca sinyal ini dan membuat nonce.
Tambahkan baris tebal ke aplikasi PAL untuk menyiapkan library iklan Android TV untuk bekerja dengan PAL SDK:
public class VideoPlayerActivity extends Activity {
...
private SignalCollector signalCollector;
...
@Override
public void onCreate(Bundle savedInstanceState) {
...
signalCollector = new SignalCollector();
...
}
...
public generateNonceForAdRequest() {
...
NonceRequest nonceRequest = NonceRequest.builder()
...
.platformSignalCollector(signalCollector)
.build();
...
}
Uraikan respons VAST
Saat permintaan iklan dibuat menggunakan sinyal library iklan Android TV, iklan Google
server akan mengirim respons VAST yang berisi tag <Icon>
dengan satu atau
beberapa turunan <IconClickFallbackImage>
untuk resolusi layar yang berbeda.
Mengikuti penguraian respons XML VAST
petunjuk
untuk menguraikan VAST.
Berikut adalah contoh struktur VAST 4.2 dari tag <Icon>
dan turunannya, dengan
data yang relevan dicetak tebal.
<?xml version="1.0" encoding="UTF-8"?>
<VAST version="4.2">
<Ad id="123456">
<Wrapper>
...
<Creatives>
...
<Creative id="7891011" AdID="ABCD123456EF" sequence="1">
...
<Linear>
...
<Icons>
...
<Icon program="TV Ads by Google" width="106" height="20" xPosition="24" yPosition="20"
duration="00:00:10" offset="00:00:00" apiFramework="VAST" altText="Why This Ad?">
<StaticResource creativeType="image/png">
<![CDATA[https://imasdk.googleapis.com/formats/ata/gtv_ads_badge.png]]>
</StaticResource>
<IconClicks>
...
<IconClickThrough><![CDATA[https://myadcenter.google.com]]></IconClickThrough>
<IconClickFallbackImages>
<IconClickFallbackImage width="950" height="600">
<AltText>Sample alt text</AltText>
<StaticResource creativeType="image/png">
<![CDATA[https://google.com?atvatc=1&atvatcmd=Eg8KDQoLbXV0ZV9hZF91cmwKAgoA]]>
</StaticResource>
</IconClickFallbackImage>
...
</IconClickFallbackImages>
</IconClicks>
</Icon>
...
</Icons>
...
</Linear>
...
</Creative>
...
</Creatives>
...
</Wrapper>
...
</Ad>
</VAST>
Demikian pula, <IconClickFallbackImages>
dapat diurai menggunakan contoh VAST 3.0
dalam panduan PAL untuk menguraikan VAST 3.0
respons.
Saat menguraikan VAST, buat
IconClickFallbackImage
untuk setiap tag <IconClickFallbackImage>
dan mengisinya dengan
data menggunakan
IconClickFallbackImage.Builder
.
Demikian pula, gunakan
IconClickFallbackImages.Builder
untuk meneruskan daftar objek IconClickFallbackImage
ke
IconClickFallbackImages
objek yang mewakili tag <IconClickFallbackImages>
.
import com.google.android.tv.ads.IconClickFallbackImage;
import com.google.android.tv.ads.IconClickFallbackImages;
import java.util.Arrays;
...
IconClickFallbackImages getIconClickFallbackImages(...) {
// Use parsed VAST IconClickFallbackImages data to build a list of
// IconClickFallbackImage objects.
int parsedWidth;
int parsedHeight;
String parsedAltText;
String parsedCreativeType;
String parsedStaticResourceUri;
// Read the <IconClickFallbackImage> node and its children to set
// parsedWidth, parsedHeight, ...
IconClickFallbackImages iconClickFallbackImages =
IconClickFallbackImages.builder(
Arrays.asList(
IconClickFallbackImage.builder()
.setWidth(parsedWidth)
.setHeight(parsedHeight)
.setAltText(parsedAltText)
.setCreativeType(parsedCreativeType)
.setStaticResourceUri(parsedStaticResourceUri)
.build()))
.build();
return iconClickFallbackImages;
}
Render AT&C
Library iklan Android TV menyediakan
AdsControlsManager.handleIconClick()
untuk merender menu AT&C atau VAST IconClickFallbackImage VAST standar.
Cuplikan berikut menyiapkan library iklan Android TV untuk merender AT&C pada menu dan ikon VAST, klik gambar penggantian.
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import com.google.android.tv.ads.AdsControlsManager;
import com.google.android.tv.ads.IconClickFallbackImage;
import com.google.android.tv.ads.IconClickFallbackImages;
import java.util.ArrayList;
import java.util.List;
public final class VideoPlayerActivity extends Activity {
...
private AdsControlsManager adsControlsManager;
...
@Override
public void onCreate(Bundle savedInstanceState) {
...
adsControlsManager = new AdsControlsManager(this);
...
}
...
/**
* Called when the user interacts with any VAST Icon.
* @param view.
*/
public void onVastIconClicked(View view) {
IconClickFallbackImages iconClickFallbackImages;
// Populate the IconClickFallbackImages object from the parsed VAST data.
...
adsControlsManager.handleIconClick(iconClickFallbackImages);
...
}
}
Memanggil AdsControlsManager.handleIconClick()
akan memulai Activity
Android, jadi
callback siklus proses standar seperti
onPause()
dan
onResume()
dapat digunakan untuk memproses perubahan siklus proses aktivitas.
[Opsional] Menyediakan perender gambar penggantian kustom
Jika aplikasi Anda memiliki persyaratan khusus, seperti pembatasan hardware atau UX
Anda bisa menetapkan fungsi callback menggunakan
AdsControlsManager.setCustomFallbackImageRenderer()
Library iklan Android TV akan memverifikasi gambar penggantian untuk menentukan apakah
aplikasi itu bisa menggunakan perender
kustom yang disediakan. Rendering kustom hanya akan digunakan
untuk VAST IconClickFallbackImage, dan bukan menu AT&C.
import android.app.Activity;
import android.os.Bundle;
import com.google.android.tv.ads.AdsControlsManager;
import com.google.android.tv.ads.CustomFallbackImageRenderer;
import com.google.android.tv.ads.IconClickFallbackImages;
import java.util.List;
public final class VideoPlayerActivity extends Activity {
...
private AdsControlsManager adsControlsManager;
...
@Override
public void onCreate(Bundle savedInstanceState) {
...
adsControlsManager = new AdsControlsManager(this);
adsControlsManager.setCustomFallbackImageRenderer(
new CustomFallbackImageRendererImpl());
...
}
private static class CustomFallbackImageRendererImpl implements CustomFallbackImageRenderer {
@Override
public void render(IconClickFallbackImages iconClickFallbackImages) {
// Render the fallback images using a custom layout
...
}
}
...
}
Memberikan masukan kepada Google tentang library iklan Android TV
Kami menantikan masukan tentang pengalaman Anda dengan integrasi dan migrasi aplikasi Android TV. Hubungi Account Manager Google Anda untuk menjadwalkan pertemuan dengan salah satu teknisi kami.
Histori rilis
Versi | Tanggal Rilis | Catatan |
---|---|---|
1.0.0 | 2023-05-16 |
|
1.0.0-alpha02 | 2022-11-17 |
|
1.0.0-alpha01 | 2022-09-07 |
|