Android TV 広告ライブラリのスタートガイド

Android TV 広告ライブラリは、ユーザーが広告をコントロールするための Google TV の広告エクスペリエンスが向上します。このガイドでは、Android TV を 広告ライブラリを既存の PAL Android TV アプリに追加します。

前提条件

広告の透明性と管理

Android TV 広告ライブラリは、広告の透明性と透明性をレンダリングする機能を提供します。 ミッドロール挿入点内の機能(AT&C)ユーザーがテレビ広告を操作したとき by Google アイコンが表示される場合、AT&C メニューがシステムとして TV ランチャー アプリによるオーバーレイ、短縮 URL、クイック応答(QR コード)を表示 広告の詳細を確認し、同じ広告の表示を停止するボタンも確認します。

Google のテレビ広告アイコンは、同じ VAST アイコンを使用して表示する必要があります。 レンダリングの要件を AdChoices アイコンをクリックします。

代替テキスト

Google のテレビ広告アイコンをクリックすると、 この広告について(ATA)ウェブページ。

代替テキスト

Android TV 広告ライブラリを統合する

ATV 広告ライブラリをインポートする

Android TV 広告ライブラリの次の依存関係をアプリレベルに追加します。 Gradle ファイル。通常は app/build.gradle です。

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

AD_ID 権限を宣言する

Android TV 広告ライブラリが広告 ID は、 次の行を AndroidManifest.xml に追加します。

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

PAL SDK と統合する

Android TV 広告ライブラリは、 SignalCollector クラスを使用して、広告のリクエストに必要なデバイス上の識別子を収集します。PAL SDK は NonceRequest.Builder クラスを使用してこれらのシグナルを読み取り、ノンスを作成します。

太字の行を PAL アプリに追加し、Android TV 広告ライブラリを次のように設定します。 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();
    ...
  }

VAST レスポンスを解析する

Android TV 広告ライブラリのシグナルを使用して広告リクエストが送信されると、 サーバーが <Icon> タグを含む VAST レスポンスを送信します。 画面解像度に応じた複数の <IconClickFallbackImage> 子。 VAST XML レスポンスの解析手順に従う 手順 VAST がパースされるようにします

以下は、<Icon> タグとその子要素の VAST 4.2 構造のサンプルです。 関連データを太字で示しています。

<?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>

同様に、<IconClickFallbackImages> は VAST 3.0 の例を使用して解析できます。 VAST 3.0 の解析に関する PAL ガイドの 回答をご覧ください。

VAST の解析時に IconClickFallbackImage <IconClickFallbackImage> タグごとにオブジェクトを作成し、解析された 使用する方法 IconClickFallbackImage.Builder。 同様に、 IconClickFallbackImages.Builder IconClickFallbackImage オブジェクトのリストを IconClickFallbackImages <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;
  }

AT&C をレンダリングする

Android TV 広告ライブラリには、 AdsControlsManager.handleIconClick() メソッド)を使用してください。

次のスニペットでは、AT&C をレンダリングするよう Android TV 広告ライブラリを設定しています [VAST] アイコンをクリックしてください。

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

AdsControlsManager.handleIconClick() を呼び出すと Android Activity が起動されるため、 標準ライフサイクル コールバックを onPause() および onResume() アクティビティのライフサイクルの変更をリッスンできます。

[省略可] カスタムの代替画像レンダラを指定する

アプリに特別な要件(ハードウェアの制限や UX など)がある場合 使用してコールバック関数を設定できます。 AdsControlsManager.setCustomFallbackImageRenderer()。 Android TV 広告ライブラリは、代替画像を検証して、 提供されたカスタム レンダラを使用できます。カスタム レンダリングは VAST の IconClickFallbackImage のみを対象としています。

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

Android TV 広告ライブラリについて Google にフィードバックを送信する

統合と運用に関するフィードバックをお寄せください Android TV アプリの移行。スケジュールについては、Google アカウント マネージャーにお問い合わせください エンジニアとのミーティングに 取り組んだ経験があるということです

リリース履歴

バージョン リリース日 メモ
1.0.0 2023-05-16
  • ロギングを追加します。
  • minSdk のサポートを API レベル 21 に引き下げました。
  • エラー処理と依存関係を更新してクラッシュを修正しました。
1.0.0-alpha02 2022-11-17
  • Android マニフェストを更新し、 Leanback オプションにします
1.0.0-alpha01 2022-09-07
  • 初回リリース。