Erste Schritte mit der Android TV-Anzeigenbibliothek

Die Android TV-Anzeigenbibliothek bietet eine Benutzeroberfläche, über die Nutzer ihre Nutzerfreundlichkeit von Werbeanzeigen auf Google TV. In diesem Leitfaden wird die Integration von Android TV erläutert. in Ihre bestehende PAL Android TV-App einbinden.

Vorbereitung

  • Arbeiten Sie den Startleitfaden durch.
  • PAL SDK für Android 20.0.1 oder höher

Anzeigentransparenz und -kontrollen

Die Android TV-Anzeigenbibliothek bietet Funktionen zum Rendern von Anzeigentransparenz und steuert Funktionen (AT&C) in Werbeunterbrechungen. Wenn Nutzer mit den TV-Anzeigen interagieren von Google-Symbol für In-Stream-Anzeigen, wird das AT&C-Menü als System gerendert Overlay von der TV-Launcher-App mit einer Kurz-URL und einer Kurzantwort (QR-Code) um mehr über die Anzeige zu erfahren, sowie eine Schaltfläche, mit der Sie die Auslieferung derselben Anzeige beenden können.

Das Symbol TV-Anzeigen von Google sollte mit demselben VAST-Symbol gerendert werden. Rendering-Anforderungen als AdChoices .

Alt-Text

Durch Klicken auf das Symbol TV-Anzeigen von Google erhält der Nutzer eine Kurz-URL und einen QR-Code für der Webseite Infos zur Anzeige (ATA).

Alt-Text

Android TV-Anzeigenbibliothek einbinden

ATV-Anzeigenbibliothek importieren

Fügen Sie auf App-Ebene die folgende Abhängigkeit für die Android TV-Anzeigenbibliothek hinzu Gradle-Datei, normalerweise app/build.gradle:

dependencies {
   ...
   implementation 'com.google.android.tv:tv-ads:1.0.0'
}

AD_ID-Berechtigung deklarieren

Damit die Android TV-Anzeigenbibliothek auf die Werbung ID den folgende Zeile zu Ihrer AndroidManifest.xml hinzu:

<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

PAL SDK einbinden

Die Android TV-Anzeigenbibliothek verwendet die SignalCollector zur Erfassung von Gerätekennungen, die für die Anforderung von Anzeigen erforderlich sind. Der PAL SDK verwendet die NonceRequest.Builder um diese Signale zu lesen und eine Nonce zu erstellen.

Fügen Sie der PAL-App die fett formatierten Zeilen hinzu, um die Android TV-Anzeigenbibliothek einzurichten. PAL SDK verwenden:

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

Bei einer Anzeigenanfrage mit den Signalen der Android TV-Anzeigenbibliothek Server senden eine VAST-Antwort, die das <Icon>-Tag mit einem oder Mehrere <IconClickFallbackImage> untergeordnete Elemente für unterschiedliche Bildschirmauflösungen. Folgen Sie den Schritten zum Parsen von VAST-XML-Antworten. Anleitung um den VAST-Code zu parsen.

Hier sehen Sie ein Beispiel für die VAST 4.2-Struktur des <Icon>-Tags und der untergeordneten Elemente mit die entsprechenden Daten fett dargestellt.

<?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> mit dem Beispiel-VAST 3.0 geparst werden. Struktur im PAL-Leitfaden für das Parsen von VAST 3.0 .

Erstellen Sie beim Parsen des VAST- IconClickFallbackImage für jedes <IconClickFallbackImage>-Tag erstellen und das geparste Daten mithilfe von IconClickFallbackImage.Builder Verwenden Sie ebenso IconClickFallbackImages.Builder um die Liste der IconClickFallbackImage-Objekte an ein IconClickFallbackImages Objekt, 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;
  }

AT&C rendern

Die Android TV-Anzeigenbibliothek bietet AdsControlsManager.handleIconClick() zum Rendern eines AT&C-Menüs oder eines standardmäßigen VAST IconClickFallbackImage.

Mit dem folgenden Snippet wird die Android TV-Anzeigenbibliothek zum Rendern der AT&C-Anzeige eingerichtet. für das Menü und das VAST-Symbol.

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);
    ...
  }
}

Durch den Aufruf von AdsControlsManager.handleIconClick() wird ein Android-Activity gestartet, Standard-Lebenszyklus-Callbacks wie onPause() und onResume() kann verwendet werden, um Änderungen am Aktivitätslebenszyklus zu überwachen.

[Optional] Benutzerdefinierten Fallback-Bild-Renderer bereitstellen

Wenn Ihre App besondere Anforderungen hat, z. B. Hardware-Einschränkungen oder UX-Einschränkungen Einschränkungen festlegen, können Sie eine Callback-Funktion mithilfe von AdsControlsManager.setCustomFallbackImageRenderer() Die Android TV-Anzeigenbibliothek überprüft die Fallback-Bilder, um festzustellen, kann der bereitgestellte benutzerdefinierte Renderer verwendet werden. Es wird nur ein benutzerdefiniertes Rendering für VAST IconClickFallbackImage und nicht für das AT&C-Menü.

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 würden uns über Feedback zu Ihren Erfahrungen mit der Integration und Migration von Android TV-Apps. Wenden Sie sich an Ihren Google Account Manager, um einen Termin zu vereinbaren. mit einem Mitglied unseres Teams zu besprechen.

Veröffentlichungsverlauf

Version Veröffentlicht am Hinweise
1.0.0 2023-05-16
  • Fügt Logging hinzu.
  • Reduziert die minSdk-Unterstützung auf API-Level 21.
  • Aktualisiert die Fehlerbehandlung und Abhängigkeiten, um Abstürze zu beheben.
1.0.0-alpha02 2022-11-17
  • Aktualisiert das Android-Manifest, das den Leanback als optional.
1.0.0-alpha01 2022-09-07
  • Erste Version