Segmentação

Este guia explica como fornecer informações de segmentação ao SDK de anúncios para dispositivos móveis do Google.

Pré-requisito

RequestConfiguration

RequestConfiguration coleta informações de segmentação aplicadas globalmente a todas as solicitações de anúncio. Consulte a documentação de RequestConfiguration.Builder para saber as tags de segmentação disponíveis.

Crie um objeto RequestConfiguration com as tags de segmentação necessárias usando o builder dele e defina a configuração chamando MobileAds.setRequestConfiguration().

Kotlin

val requestConfiguration = RequestConfiguration
  .Builder()
  // Set your targeting tags.
  .setTagForChildDirectedTreatment(RequestConfiguration.TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
  .build()

MobileAds.setRequestConfiguration(requestConfiguration)

Java

RequestConfiguration requestConfiguration = new RequestConfiguration
  .Builder()
  // Set your targeting tags.
  .setTagForChildDirectedTreatment(TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
  .build();

MobileAds.setRequestConfiguration(requestConfiguration);

Para aplicar tags de segmentação da primeira solicitação de anúncio, forneça a configuração de solicitação durante a inicialização do SDK:

Kotlin

val requestConfiguration = RequestConfiguration
  .Builder()
  // Set your targeting tags.
  .setTagForChildDirectedTreatment(RequestConfiguration.TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
  .build()

CoroutineScope(Dispatchers.IO).launch {
  // Initialize Google Mobile Ads SDK (beta) on a background thread.
  MobileAds.initialize(
    this@MainActivity,
    InitializationConfig
      // Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713
      .Builder("SAMPLE_APP_ID")
      .setRequestConfiguration(requestConfiguration)
      .build()
  ) {
    // Adapter initialization is complete.
  }
  // Other methods on MobileAds can now be called.
}

Java

RequestConfiguration requestConfiguration = new RequestConfiguration
    .Builder()
    // Set your targeting tags.
    .setTagForChildDirectedTreatment(TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
    .build();

new Thread(
    () -> {
      // Initialize Google Mobile Ads SDK (beta) on a background thread.
      MobileAds.initialize(
          this,
          // Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713
          new InitializationConfig
              .Builder("SAMPLE_APP_ID")
              .setRequestConfiguration(requestConfiguration)
              .build(),
          initializationStatus -> {
            // Adapter initialization is complete.
          });
      // Other methods on MobileAds can now be called.
    })
    .start();

Configuração voltada para crianças

De acordo com a Lei de Proteção da Privacidade On-line das Crianças (COPPA), há uma configuração chamada "Tag de Tratamento para Direcionamento a Crianças". Ao configurar essa tag, você certifica que essa notificação está correta e que você tem autorização para agir em nome do proprietário do app. Você está ciente de que o abuso dessa configuração poderá resultar no encerramento da sua Conta do Google.

Como desenvolvedor de apps, você pode indicar se quer que o Google trate seu conteúdo como feito para crianças quando fizer uma solicitação de anúncio. Nesse caso, vamos desativar a IBA e os anúncios de remarketing na solicitação de anúncio.

Você pode usar a configuração voltada para crianças em setTagForChildDirectedTreatment():

  • Chame setTagForChildDirectedTreatment com TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE para indicar que seu conteúdo deve ser tratado como direcionado a crianças para fins da COPPA. Isso impede a transmissão do identificador de publicidade do Android (AAID).

  • Chame setTagForChildDirectedTreatment com TAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE para indicar que seu conteúdo não deve ser tratado como feito para crianças para fins da COPPA.

  • Chame setTagForChildDirectedTreatment com TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED se não quiser indicar como tratar seu conteúdo em relação à COPPA nas solicitações de anúncios.

O exemplo a seguir indica que seu conteúdo deve ser tratado como direcionado a crianças para fins da COPPA:

Kotlin

val requestConfiguration = RequestConfiguration
  .Builder()
  .setTagForChildDirectedTreatment(RequestConfiguration.TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
  .build()

MobileAds.setRequestConfiguration(requestConfiguration)

Java

RequestConfiguration requestConfiguration = new RequestConfiguration
  .Builder()
  .setTagForChildDirectedTreatment(TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
  .build();

MobileAds.setRequestConfiguration(requestConfiguration);

Você pode marcar suas solicitações de anúncios para receber tratamento aos usuários no Espaço Econômico Europeu (EEE) abaixo da idade de consentimento. Esse recurso foi desenvolvido para obedecer ao Regulamento geral de proteção de dados (GDPR). É possível que você tenha outras obrigações legais de acordo com o GDPR. Leia as orientações da União Europeia e consulte sua assessoria jurídica. Com as ferramentas do Google, é mais fácil obedecer às diretrizes, mas os publishers ainda precisam seguir as obrigações legais. Saiba mais sobre como o GDPR afeta os publishers.

Quando você usa esse recurso, um parâmetro TFUA (Tag para usuários abaixo da idade de consentimento, aplicável à Europa) é incluído na solicitação de anúncio. Ele desativa a publicidade personalizada, incluindo o remarketing, para todas as solicitações de anúncios. As solicitações para fornecedores de anúncio terceirizados também serão desativadas, como pixels de medição de anúncios e servidores de anúncios de terceiros.

Assim como as configurações voltadas a crianças, há um método em RequestConfiguration.Builder para definir o parâmetro TFUA: setTagForUnderAgeOfConsent(), com as opções a seguir.

  • Chame setTagForUnderAgeOfConsent() com TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE para indicar que a solicitação de anúncio deve receber tratamento aos usuários no Espaço Econômico Europeu (EEE) abaixo da idade de consentimento. Isso também impede a transmissão do identificador de publicidade do Android (AAID).

  • Chame setTagForUnderAgeOfConsent() com TAG_FOR_UNDER_AGE_OF_CONSENT_FALSE para indicar que a solicitação de anúncio não deve ser tratada assim.

  • Chame setTagForUnderAgeOfConsent() com TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED se não quiser indicar como tratar a solicitação de anúncio em relação à idade de consentimento no Espaço Econômico Europeu (EEE).

O exemplo a seguir indica que a TFUA deve ser incluída nas suas solicitações de anúncio:

Kotlin

val requestConfiguration = RequestConfiguration
  .Builder()
  .setTagForUnderAgeOfConsent(RequestConfiguration.TagForUnderAgeOfConsent.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE)
  .build()

MobileAds.setRequestConfiguration(requestConfiguration)

Java

RequestConfiguration requestConfiguration = new RequestConfiguration
  .Builder()
  .setTagForUnderAgeOfConsent(TagForUnderAgeOfConsent.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE)
  .build();

MobileAds.setRequestConfiguration(requestConfiguration);

As tags para ativar a configuração de direcionamento a crianças e setTagForUnderAgeOfConsent() não podem ser definidas ao mesmo tempo como true. Se isso acontecer, a configuração voltada para crianças terá precedência.

Filtragem de conteúdo do anúncio

Para obedecer à política de anúncios inadequados do Google Play, que inclui ofertas associadas em um anúncio, todos os anúncios e ofertas associadas exibidos no app precisam ser adequados à classificação do conteúdo dele, mesmo que o conteúdo em si esteja de acordo com as políticas do Google Play.

Ferramentas como a classificação máxima do conteúdo do anúncio ajudam a ter mais controle sobre o que é exibido nos anúncios. Você pode definir uma classificação máxima do conteúdo para estar de acordo com as políticas da plataforma.

Os apps podem definir uma classificação máxima do conteúdo do anúncio para as solicitações usando o método setMaxAdContentRating. Os anúncios que a AdMob retorna com essa configuração têm uma classificação do conteúdo igual ou inferior a esse nível. Os valores possíveis para esse extra de rede consideram as classificações de conteúdo digital e podem ser uma das seguintes strings:

  • MAX_AD_CONTENT_RATING_G
  • MAX_AD_CONTENT_RATING_PG
  • MAX_AD_CONTENT_RATING_T
  • MAX_AD_CONTENT_RATING_MA

O código a seguir configura um objeto RequestConfiguration para especificar que o conteúdo do anúncio retornado deve corresponder a uma classificação de conteúdo digital inferior a G:

Kotlin

val requestConfiguration = RequestConfiguration
  .Builder()
  .setMaxAdContentRating(RequestConfiguration.MaxAdContentRating.MAX_AD_CONTENT_RATING_G)
  .build()

MobileAds.setRequestConfiguration(requestConfiguration)

Java

RequestConfiguration requestConfiguration = new RequestConfiguration
  .Builder()
  .setMaxAdContentRating(MaxAdContentRating.MAX_AD_CONTENT_RATING_G)
  .build();

MobileAds.setRequestConfiguration(requestConfiguration);

Saiba como definir a classificação máxima do conteúdo para cada solicitação de anúncio.

Tratamento de privacidade do publisher (Beta)

A API Publisher Privacy Treatment (PPT) é uma ferramenta opcional que permite aos apps indicar se a personalização de anúncios precisa ser desativada para todas as solicitações de anúncio usando o método setPublisherPrivacyPersonalizationState(). Ao usar esse recurso, um parâmetro de tratamento de privacidade do publisher (PPT) é incluído em todas as solicitações futuras pelo restante da sessão.

Por padrão, as solicitações de anúncios ao Google veiculam anúncios personalizados. O código a seguir desativa a personalização de anúncios para todas as solicitações de anúncios:

Kotlin

val requestConfiguration = RequestConfiguration
  .Builder()
  .setPublisherPrivacyPersonalizationState(RequestConfiguration.PublisherPrivacyPersonalizationState.DISABLED)
  .build()

MobileAds.setRequestConfiguration(requestConfiguration)

Java

RequestConfiguration requestConfiguration = new RequestConfiguration
  .Builder()
  .setPublisherPrivacyPersonalizationState(RequestConfiguration.PublisherPrivacyPersonalizationState.DISABLED)
  .build();

MobileAds.setRequestConfiguration(requestConfiguration);

Solicitação de anúncio

O objeto AdRequest coleta as informações de segmentação que serão enviadas com uma solicitação de anúncio.

Adicionar extras de rede

Extras de rede são informações adicionais enviadas junto com a solicitação de anúncio, específicas de uma única origem de anúncios.

O snippet de código a seguir define uma chave de parâmetro extra de collapsible com um valor de bottom para o Google:

Kotlin

val extras = Bundle()
extras.putString("collapsible", "bottom")
val adRequest =
  NativeAdRequest.Builder("AD_UNIT_ID", listOf(NativeAd.NativeAdType.NATIVE))
    .setGoogleExtrasBundle(extras)
    .build()
NativeAdLoader.load(adRequest, adCallback)

Java

Bundle extras = new Bundle();
extras.putString("collapsible", "bottom");
NativeAdRequest adRequest =
  new NativeAdRequest.Builder("AD_UNIT_ID", Arrays.asList(NativeAd.NativeAdType.NATIVE))
    .setGoogleExtrasBundle(extras)
    .build();
NativeAdLoader.load(adRequest, adCallback);

Segmentação personalizada

É possível transmitir pares de chave-valor personalizados para segmentar campanhas do Google Ad Manager (itens de linha). O exemplo a seguir transmite um par de chave-valor personalizado em uma solicitação de anúncio:

Kotlin

// Example: Pass custom targeting "age=25".
val newRequest = AdRequest.Builder("AD_UNIT_ID")
  .putCustomTargeting("age", "25")
  .build()

Java

// Example: Pass custom targeting "age=25".
AdRequest newRequest = new AdRequest.Builder("AD_UNIT_ID")
  .putCustomTargeting("age", "25")
  .build();

É possível transmitir vários valores para uma chave como uma lista de strings. Por exemplo, para segmentar indivíduos com aproximadamente 25 anos, e não apenas aqueles com 25 anos.

Kotlin

.putCustomTargeting("age", listOf("24", "25", "26"))

Java

.putCustomTargeting("age", Arrays.asList("24", "25", "26"));

Exclusões de categoria

É possível adicionar a uma solicitação um nível de exclusão de categoria no nível do espaço usando o método addCategoryExclusion():

Kotlin

// Example: Exclude "automobile" and "boat" categories.
val newRequest = AdRequest.Builder("AD_UNIT_ID")
  .addCategoryExclusion("automobile")
  .addCategoryExclusion("boat")
  .build()

Java

// Example: Exclude "automobile" and "boat" categories.
AdRequest newRequest = new AdRequest.Builder("AD_UNIT_ID")
    .addCategoryExclusion("automobile")
    .addCategoryExclusion("boat")
    .build();

Confira o exemplo de exclusões de categoria do Ad Manager para uma implementação no app de demonstração da API Android.

Identificadores fornecidos pelo publisher

É possível definir um identificador fornecido pelo publisher (PPID) para uso em limite de frequência, segmentação de público-alvo, rotação de anúncio sequencial e outros controles de exibição de anúncios com base no público-alvo em vários dispositivos.

Veja um exemplo de definição do PPID:

Kotlin

val adRequest = AdRequest.Builder("AD_UNIT_ID")
  .setPublisherProvidedId("AB123456789")
  .build()

Java

AdRequest adRequest = new AdRequest.Builder("AD_UNIT_ID")
    .setPublisherProvidedId("AB123456789")
    .build();

Acesse o exemplo de PPID do Ad Manager e confira uma implementação desses identificadores no app de demonstração da API Android.

Indicadores fornecidos pelo publisher

É possível enviar dados contextuais e de público-alvo como indicadores fornecidos pelo publisher (PPS) em solicitações de anúncio. Com os PPS, você pode usar seus dados de usuário para aprimorar a monetização programática comunicando as características do seu público-alvo aos bidders em todos os tipos de transação, com as taxonomias padrão, sem precisar compartilhar identificadores de usuário. As características do público-alvo podem incluir dados comportamentais e baseados em interesses (Taxonomia de público-alvo 1.1 do IAB) e dados contextuais (Taxonomia de conteúdo 2.2 do IAB).

Kotlin

val extras = Bundle()
// Set the demographic to an audience with an "Age Range" of 30-34 and an
// interest in mergers and acquisitions.
extras.putIntegerArrayList("IAB_AUDIENCE_1_1", arrayListOf(6,284))
// Set the content to sedan, station wagon and SUV automotive values.
extras.putIntegerArrayList("IAB_CONTENT_2_2", arrayListOf(4,5,6))

val request = AdRequest.Builder("AD_UNIT_ID")
  .setGoogleExtrasBundle(extras)
  .build()

Java

Bundle extras = new Bundle();
// Set the demographic to an audience with an "Age Range" of 30-34 and an
// interest in mergers and acquisitions.
extras.putIntegerArrayList("IAB_AUDIENCE_1_1", arrayListOf(6,284));
// Set the content to sedan, station wagon and SUV automotive values.
extras.putIntegerArrayList("IAB_CONTENT_2_2", arrayListOf(4,5,6));

AdRequest request = new AdRequest.Builder("AD_UNIT_ID")
  .setGoogleExtrasBundle(extras)
  .build();

URL de conteúdo

Para fornecer um URL de conteúdo para anúncios segmentados por conteúdo e brand safety, adicione o seguinte:

Kotlin

val builder = AdRequest.Builder("AD_UNIT_ID")
builder.setContentUrl("https://www.example.com")
val request = builder.build()

Java

AdRequest.Builder builder = new AdRequest.Builder("AD_UNIT_ID")
builder.setContentUrl("https://www.example.com");
AdRequest request = builder.build();

Brand safety (Beta)

Aplicativos que mostram conteúdo dinâmico destinado a mais de um público podem fornecer uma lista curta de URLs:

Kotlin

val urls = mutableListOf("https://www.mycontenturl1.com", "https://www.mycontenturl2.com",
                         "https://www.mycontenturl3.com", "https://www.mycontenturl4.com")
val requestWithContent = AdRequest.Builder("AD_UNIT_ID")
  .setNeighboringContentUrls(urls)
  .build()

Java

ArrayList<String> urls = new ArrayList<String>();
urls.add("https://www.mycontenturl1.com");
urls.add("https://www.mycontenturl2.com");
urls.add("https://www.mycontenturl3.com");
urls.add("https://www.mycontenturl4.com");
AdRequest requestWithContent = new AdRequest.Builder("AD_UNIT_ID")
    .setNeighboringContentUrls(urls)
    .build();

.setNeighboringContentUrls() difere de .setContentUrl() porque é usado apenas para brand safety.