Die Android TV-Anzeigenbibliothek bietet eine Benutzeroberfläche, über die Nutzer die Anzeigeneinstellungen auf Google TV verwalten können. In dieser Anleitung wird beschrieben, wie du die Android TV-Anzeigenbibliothek in deine vorhandene PAL-Android TV-App einbindest.
Vorbereitung
- Führen Sie den Startleitfaden aus.
- Android PAL SDK Version 20.0.1 oder höher
Transparenz und Einstellungen für Werbung
Die Android TV-Anzeigenbibliothek bietet Funktionen zur Darstellung von Anzeigentransparenz und Steuerelementen (AT&C) während Werbeunterbrechungen. Wenn Nutzer während einer In-Stream-Anzeige mit dem Symbol TV-Anzeigen von Google interagieren, wird das Menü für die Einstellungen für Anzeigen und Daten als System-Overlay von der TV-Launcher-App gerendert. Es enthält eine kurze URL, einen QR-Code, über den Nutzer mehr über die Anzeige erfahren können, und eine Schaltfläche, mit der sie verhindern können, dass dieselbe Anzeige noch einmal eingeblendet wird.
Das Symbol TV-Anzeigen von Google sollte mit denselben Anforderungen für das VAST-Symbol-Rendering wie das AdChoices gerendert werden.
Wenn der Nutzer auf das Symbol TV-Anzeigen von Google klickt, werden ihm eine kurze URL und ein QR-Code für die Webseite Informationen zu dieser Anzeige (Informationsseite zu Anzeigen) angezeigt.
Android TV-Anzeigenbibliothek einbinden
ATV-Anzeigenbibliothek importieren
Fügen Sie der Gradle-Datei auf App-Ebene (normalerweise app/build.gradle
) die folgende Abhängigkeit für die Android TV-Anzeigenbibliothek hinzu:
dependencies {
...
implementation 'com.google.android.tv:tv-ads:1.0.1'
}
AD_ID
-Berechtigung deklarieren
Damit die Android TV-Werbebibliothek auf die Werbe-ID zugreifen kann, fügen Sie der Datei AndroidManifest.xml
die folgende Zeile hinzu:
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
PAL SDK einbinden
Die Android TV-Anzeigenbibliothek verwendet die Klasse SignalCollector
, um Kennungen auf dem Gerät zu erfassen, die für die Anforderung von Anzeigen erforderlich sind. Das PAL SDK verwendet die Klasse NonceRequest.Builder
, um diese Signale zu lesen und eine Nonce zu erstellen.
Fügen Sie Ihrer PAL-App die fett formatierten Zeilen hinzu, um die Android TV-Anzeigenbibliothek für die Verwendung mit dem PAL SDK einzurichten:
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();
...
}
VAST-Antwort parsen
Wenn eine Anzeigenanfrage mit den Signalen der Android TV-Anzeigenbibliothek erfolgt, senden Google-Anzeigenserver eine VAST-Antwort mit dem <Icon>
-Tag mit einem oder mehreren <IconClickFallbackImage>
-Unterelementen für verschiedene Bildschirmauflösungen.
Folgen Sie der Anleitung zum Parsen von VAST-XML-Antworten, um das VAST-Tag zu parsen.
Hier ist eine Beispielstruktur für VAST 4.2 des <Icon>
-Tags und seiner untergeordneten Tags. Die relevanten Daten sind fett hervorgehoben.
<?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>
Ebenso kann <IconClickFallbackImages>
mithilfe der Beispiel-VAST 3.0-Struktur im PAL-Leitfaden zum Parsen von VAST 3.0-Antworten geparst werden.
Erstelle beim Parsen des VAST-Dokuments für jedes <IconClickFallbackImage>
-Tag ein IconClickFallbackImage
-Objekt und fülle es mit den geparsten Daten aus IconClickFallbackImage.Builder
.
Verwenden Sie IconClickFallbackImages.Builder
, um die Liste der IconClickFallbackImage
-Objekte an ein IconClickFallbackImages
-Objekt zu übergeben, das das <IconClickFallbackImages>
-Tag darstellt.
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-AGB
Die Android TV-Anzeigenbibliothek bietet eine Methode AdsControlsManager.handleIconClick()
zum Rendern eines AT&C-Menüs oder eines standardmäßigen VAST-IconClickFallbackImage.
Im folgenden Snippet wird die Android TV-Anzeigenbibliothek so eingerichtet, dass das AT&C-Menü und die Fallback-Bilder für Klicks auf das VAST-Symbol gerendert werden.
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);
...
}
}
Wenn AdsControlsManager.handleIconClick()
aufgerufen wird, wird ein Android-Activity
gestartet. So können standardmäßige Lebenszyklus-Callbacks wie onPause()
und onResume()
verwendet werden, um Änderungen am Aktivitätszyklus zu erfassen.
[Optional] Benutzerdefinierten Fallback-Image-Renderer bereitstellen
Wenn für Ihre App spezielle Anforderungen gelten, z. B. Hardwareeinschränkungen oder UX-Einschränkungen, können Sie mit AdsControlsManager.setCustomFallbackImageRenderer()
eine Rückruffunktion festlegen.
Die Android TV-Anzeigenbibliothek prüft die Fallback-Bilder, um festzustellen, ob der bereitgestellte benutzerdefinierte Renderer verwendet werden kann. Ein benutzerdefiniertes Rendering wird nur für das VAST-IconClickFallbackImage und nicht für das AT&C-Menü verwendet.
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
...
}
}
...
}
Google Feedback zur Android TV-Anzeigenbibliothek geben
Wir möchten wissen, welche Erfahrungen Sie mit der Einbindung und Migration von Android TV-Apps gemacht haben. Wenden Sie sich an Ihren Google Account Manager, um einen Termin mit einem unserer Entwickler zu vereinbaren.
Veröffentlichungsverlauf
Version | Veröffentlicht am | Hinweise |
---|---|---|
1.0.1 | 2025-01-09 |
|
1.0.0 | 2023-05-16 |
|
1.0.0-alpha02 | 2022-11-17 |
|
1.0.0-alpha01 | 2022-09-07 |
|