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

Android TV reklam kitaplığı, kullanıcıların Google TV'deki reklam deneyimlerini kontrol edebilecekleri bir kullanıcı arayüzü sağlar. Bu kılavuzda, Android TV reklam kitaplığının mevcut PAL Android TV uygulamanıza nasıl entegre edileceği açıklanmaktadır.

Ön koşullar

  • Başlangıç kılavuzunu tamamlayın
  • Android PAL SDK'sı 20.0.1 veya daha yeni bir sürüm

Reklam şeffaflığı ve kontrolleri

Android TV reklam kitaplığı, reklam araları sırasında reklam şeffaflığını ve kontrol özelliklerini (AT&C) oluşturma işlevi sağlar. Kullanıcılar yayın içi reklamlar sırasında Google TV Reklamları simgesine dokunduğunda TV başlatıcı uygulaması, AT&C menüsünü sistem yer paylaşımı olarak oluşturur. Bu menüde kısa bir URL, reklam hakkında daha fazla bilgi edinmek için hızlı yanıt (QR kodu) ve aynı reklamın gösterilmesini durdurma düğmesi gösterilir.

Google TV Reklamları simgesi, AdChoices simgesiyle aynı VAST simge oluşturma koşulları kullanılarak oluşturulmalıdır.

Diğer metin

Google TV Reklamları simgesini tıklayan kullanıcıya Bu reklam hakkında (ATA) web sayfasının kısa URL'si ve QR kodu gösterilir.

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üzeyindeki Gradle dosyanıza (genellikle app/build.gradle) ekleyin:

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

AD_ID iznini beyan etme

Android TV reklam kitaplığının reklam kimliğine erişebilmesi için AndroidManifest.xml dosyanıza 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ığı, reklam isteğinde bulunmak için cihazda gereken tanımlayıcıları toplamak üzere SignalCollector sınıfını kullanır. PAL SDK'sı, bu sinyalleri okumak ve tek seferlik bir değer oluşturmak için NonceRequest.Builder sınıfını kullanır.

Android TV reklam kitaplığını PAL SDK'sıyla çalışacak şekilde ayarlamak için kalın satırları PAL uygulamanıza ekleyin:

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ırma

Android TV reklam kitaplığının sinyalleriyle bir reklam isteği gönderildiğinde Google reklam sunucuları, farklı ekran çözünürlükleri için bir veya daha fazla <IconClickFallbackImage> alt öğesi içeren <Icon> etiketini içeren bir VAST yanıtı gönderir. VAST'ı ayrıştırmak için VAST XML yanıtlarını ayrıştırma talimatları

Aşağıda, <Icon> etiketi ve alt öğelerinin örnek bir VAST 4.2 yapısı verilmiştir. İlgili veriler kalın olarak gösterilmiştir.

<?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>, VAST 3.0 yanıtlarını ayrıştırmaya yönelik PAL kılavuzundaki örnek VAST 3.0 yapısı kullanılarak ayrıştırılabilir.

VAST'i ayrıştırırken her <IconClickFallbackImage> etiketi için bir IconClickFallbackImage nesnesi oluşturun ve IconClickFallbackImage.Builder kullanarak bu nesneyi ayrıştırılan verilerle doldurun. Benzer şekilde, IconClickFallbackImage nesnelerinin listesini <IconClickFallbackImages> etiketini temsil eden bir IconClickFallbackImages nesnesine iletmek için IconClickFallbackImages.Builder kullanın.

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 Hükümler ve Koşulları

Android TV reklam kitaplığı, AT&C menüsünü veya standart bir VAST IconClickFallbackImage'yi oluşturmak için bir AdsControlsManager.handleIconClick() yöntemi sağlar.

Aşağıdaki snippet, Android TV reklam kitaplığını AT&C menüsü ve VAST simgesi tıklama yedek resimlerini oluşturacak şekilde ayarlar.

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() çağrısı bir Android Activity başlatır. Bu nedenle, etkinlik yaşam döngüsü değişikliklerini dinlemek için onPause() ve onResume() gibi standart yaşam döngüsü geri çağırma yöntemleri kullanılabilir.

[İsteğe bağlı] Özel yedek resim oluşturma aracı sağlayın

Uygulamanızın donanım kısıtlamaları veya kullanıcı deneyimi kısıtlamaları gibi özel koşulları varsa AdsControlsManager.setCustomFallbackImageRenderer() kullanarak geri çağırma işlevi ayarlayabilirsiniz. Android TV reklam kitaplığı, sağlanan özel oluşturma aracını kullanıp kullanamayacağını belirlemek için yedek resimleri doğrular. Özel oluşturma yalnızca VAST IconClickFallbackImage için kullanılır, AT&C menüsü için kullanılmaz.

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 reklam kitaplığıyla ilgili geri bildirim gönderme

Android TV uygulamalarının entegrasyonu ve taşınmasıyla ilgili deneyiminiz hakkında geri bildirim almak istiyoruz. Mühendislerimizden biriyle toplantı planlamak için Google hesap yöneticinizle iletişime geçin.

Sürüm geçmişi

Sürüm Yayın Tarihi Notlar
1.0.1 2025-01-09
  • Desteklenen reklam şeffaflığını ve kontrol biçimlerini günceller.
1.0.0 2023-05-16
  • Günlüğe kaydetme özelliği eklendi.
  • minSdk desteğini API düzeyi 21'e düşürür.
  • Kilitlenmeleri düzeltmek için hata işleme ve bağımlılıkları günceller.
1.0.0-alpha02 2022-11-17
  • Android manifest dosyasını güncelleyerek Leanback özelliğinin isteğe bağlı olmasını sağlar.
1.0.0-alpha01 2022-09-07
  • İlk sürüm.