Android TV reklam kitaplığını kullanmaya başlama

Android TV reklam kitaplığı, kullanıcıların Google TV'de reklam deneyimi. Bu rehberde, Android TV'nin nasıl entegre edileceği açıklanmaktadır. reklam kitaplığını mevcut PAL Android TV uygulamanıza aktarın.

Ön koşullar

  • Başlangıç kılavuzunu tamamlayın
  • Android PAL SDK'sı 20.0.1 veya sonraki sürümler

Reklam şeffaflığı ve kontrolleri

Android TV reklam kitaplığı, reklam şeffaflığını sağlama ve Reklam araları sırasında özellikleri (AT&C) kontrol eder. Kullanıcılar, TV Reklamları ile yayın içi reklamlar sırasında Google tarafından simgesi görüntülenirse AT&C menüsü TV başlatıcı uygulamasından gelen, kısa URL'yi, hızlı yanıtı (QR kodu) gösteren yer paylaşımı reklam hakkında daha fazla bilgi edinebilir ve aynı reklamı göstermeyi durduran bir düğmeyi kullanabilirsiniz.

Google TV Reklamları simgesi, aynı VAST simgesi kullanılarak oluşturulmalıdır oluşturma gereksinimlerini AdChoices simgesini tıklayın.

Diğer metin

Google TV Reklamları simgesini tıklayan kullanıcıya, Bu reklam hakkında (ATA) web sayfasında.

Diğer metin

Android TV reklam kitaplığını entegre etme

ATV reklam kitaplığını içe aktarma

Android TV reklam kitaplığı için aşağıdaki bağımlılığı uygulama düzeyine ekleyin Gradle dosyası (normalde app/build.gradle):

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

AD_ID izni beyan et

Android TV reklam kitaplığının Reklam ID, AndroidManifest.xml kodunuza aşağıdaki satırı ekleyin:

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

PAL SDK'sı ile entegrasyon

Android TV reklam kitaplığı SignalCollector sınıfını kullanır. PAL SDK, NonceRequest.Builder sınıfını kullanır.

Android TV reklam kitaplığını ayarlamak için PAL uygulamanıza kalın satırları ekleyerek PAL SDK ile çalışma:

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 yanıtını ayrıştır

Android TV reklam kitaplığının sinyalleri kullanılarak reklam isteğinde bulunulduğunda, Google reklamı sunucular, aşağıdaki etiketlerden birini içeren <Icon> etiketini içeren bir VAST yanıtı gönderir: farklı ekran çözünürlükleri için birden fazla <IconClickFallbackImage> çocuk kullanmanız gerekir. VAST XML yanıtlarını ayrıştırmayı takip etme talimatları ayrıştırır.

Aşağıda, <Icon> etiketi ve alt öğelerini içeren örnek bir VAST 4.2 yapısı verilmiştir: İlgili veriler kalın karakterlerle gösterilir.

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

Benzer şekilde, <IconClickFallbackImages>, örnek VAST 3.0 kullanılarak ayrıştırılabilir VAST 3.0 ayrıştırmak için PAL kılavuzundaki yapı yanıt ekleyin.

VAST'yi ayrıştırırken bir IconClickFallbackImage nesnesini tanımlayın ve bunu, ayrıştırılan<IconClickFallbackImage> veri kullanımı IconClickFallbackImage.Builder. Benzer şekilde, IconClickFallbackImages.Builder IconClickFallbackImage nesne listesini bir IconClickFallbackImages <IconClickFallbackImages> etiketini temsil eden nesne.

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 oluştur

Android TV reklam kitaplığı şunları sağlar: AdsControlsManager.handleIconClick() bir AT&C menüsü veya standart VAST iconClickFallbackImage oluşturmak için kullanılan bir yöntem.

Aşağıdaki snippet, AT&C'yi oluşturmak için Android TV reklam kitaplığını oluşturur menüsü ve VAST simgesi yedek resimleri tıklar.

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() arandığında Android Activity başlatılır. gibi standart yaşam döngüsü geri çağırmaları onPause() ve onResume() etkinlik yaşam döngüsü değişikliklerini dinlemek için kullanılabilir.

[İsteğe bağlı] Özel yedek resim oluşturucu sağlama

Uygulamanızın donanım kısıtlamaları veya kullanıcı deneyimi gibi özel gereksinimleri varsa kısıtlamalarını aşmadan bir geri çağırma işlevi ayarlayabilirsiniz. AdsControlsManager.setCustomFallbackImageRenderer(). Android TV reklam kitaplığı, uygulamanın sağlanan özel oluşturucuyu kullanabilir. Yalnızca özel oluşturma kullanılır kullanılması gerekir.

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'a Android TV reklamları kitaplığı hakkında geri bildirimde bulunun

Entegrasyon ve etkileşim deneyiminiz hakkında geri bildirim istiyoruz Android TV uygulamalarının taşınması. Planlamak için Google hesap yöneticinizle iletişime geçin mühendisimizden biriyle yapacağımız toplantı.

Sürüm geçmişi

Sürüm Yayın Tarihi Notlar
1.0.0 2023-05-16
  • Günlük kaydı ekler.
  • minSdk desteğini API düzeyi 21'e düşürür.
  • Kilitlenmeleri düzeltmek için hata işlemeyi ve bağımlılıkları günceller.
1.0.0-alpha02 2022-11-17
  • Android Manifest'i güncelleyerek Leanback isteğe bağlı olacak.
1.0.0-alpha01 2022-09-07
  • İlk sürüm.