Pré-requisitos
Para usar este guia de implementação, você precisa conhecer o seguinte:
- Protocolo de implementação dos anúncios personalizados de pesquisa (CSA, na sigla em inglês) do AFS
- Desenvolvimento de apps Android
- Associe o SDK dos anúncios para dispositivos móveis do Google para Android, que agora faz parte do Google Play Services, a um projeto do Android Studio. A versão 9.0.0 do Google Play Services é obrigatória.
Aulas
Para veicular anúncios do AFSMA (também conhecidos como anúncios de pesquisa de altura dinâmica) no seu app, implemente as seguintes classes:
- Essa classe herda da classe
ViewGroup
do Android e exibe os anúncios do AFSMA. OSearchAdView
faz a solicitação de um anúncio com umaDynamicHeightSearchAdRequest
e renderiza os anúncios retornados. OSearchAdView
precisa ser adicionado a qualquer um dos grupos de visualizações existentes do app. - O
SearchAdView
precisa ser instanciado com o contexto em que oSearchAdView
está sendo executado, normalmente umActivity
. - Depois que o
SearchAdView
for instanciado, você precisará chamar o métodosetAdSize()
comAdSize.SEARCH
para solicitar anúncios do AFSMA. Outros valores de enumeração solicitam anúncios sem suporte ao AFS em apps para dispositivos móveis. - Chame o método
setAdUnitId()
nesse objeto com o código da propriedade.
DynamicHeightSearchAdRequest.Builder
- Esta classe encapsula os parâmetros de solicitação de anúncio. Isso é análogo à definição dos parâmetros nos objetos de solicitação de anúncio JavaScript (opções de página, opções de unidade) para Web para dispositivos móveis e computador do AFS.
- Defina os parâmetros com os setters apropriados. Em outras palavras,
chame
setQuery()
para definir o parâmetro de consulta.
Implementação de exemplo
O exemplo abaixo demonstra o uso de uma Activity
para criar uma SearchAdView
como uma subvisualização de uma ViewGroup
. Para solicitar anúncios do AFSMA corretamente, o objeto SearchAdView
precisa chamar o método setAdSize()
com AdSize.SEARCH
.
// MainActivity.java implementation
// (MainActivity is a subclass of Activity)
// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);
// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!
// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");
// Add searchAdView to parent view group
...
Na mesma Activity
, crie uma DynamicHeightSearchAdRequest.Builder
que
direcione os parâmetros do anúncio que será renderizado na SearchAdView
.
Os anúncios do AFSMA são configurados da mesma forma que os anúncios da pesquisa personalizada do AFS. Para mais detalhes, consulte a referência.
// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);
// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");
// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);
Outras opções de personalização são possíveis definindo propriedades adicionais no objeto DynamicHeightSearchAdRequest.Builder
.
Para fazer uma solicitação de anúncio, chame o método loadAd()
com o
objeto DynamicHeightSearchAdRequest.Builder
do objeto SearchAdView
:
searchAdView.loadAd(builder.build());
Opções avançadas
A maioria dos parâmetros de solicitação de anúncio pode ser definida usando métodos setter
no objeto DynamicHeightSearchAdRequest.Builder
.
Todos os parâmetros que não têm um método setter em
DynamicHeightSearchAdRequest.Builder
podem ser definidos usando pares de chave-valor com o
método
setAdvancedOptionValue()
.
Consulte a Referência dos anúncios personalizados de pesquisa do AFS para ver uma lista completa de configurações que podem ser definidas com o método setAdvancedOptionValue()
.
O parâmetro da chave precisa ser prefixado com "csa_" para que a propriedade seja definida corretamente.
// Advanced customization options (set using key-value pair)
// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");
// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");
Se você usar o método setter de um parâmetro e defini-lo usando setAdvancedOptionValue
,
a segunda chamada vai substituir o valor da primeira chamada.
Como investigar erros
O SearchAdView
(searchAdView
aqui) contém um método setAdListener()
para ajudar você a investigar erros. No mesmo Activity
:
searchAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Called when an ad is loaded
super.onAdLoaded();
Toast.makeText(MainActivity.this, "Ad Loaded",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
}
@Override
public void onAdOpened() {
// Called when an ad opens an overlay that covers the screen
super.onAdOpened();
Toast.makeText(MainActivity.this, "Ad Opened",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
}
@Override
public void onAdLeftApplication() {
// Called when an ad leaves the application
// (to go to the browser for example)
super.onAdLeftApplication();
Toast.makeText(MainActivity.this, "Ad Left Application",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Called when an ad request failed
super.onAdFailedToLoad(errorCode);
Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
Toast.LENGTH_SHORT).show();
Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
errorCode);
}
});
As constantes usadas no método de callback onAdFailedToLoad()
são descritas na Referência
da API.
Preparação para os requisitos de divulgação de dados do Google Play
Em maio de 2021, o Google Play anunciou a nova seção "Segurança dos dados", uma declaração fornecida pelo desenvolvedor sobre práticas de coleta, compartilhamento e segurança de dados de um app.
Esta página explica como atender aos requisitos da divulgação de dados quanto ao seu uso do SDK nativo do AFS (também válido para o uso do AdSense para Shopping). Nesta página, você encontra informações sobre como e se nossos SDKs manipulam dados do usuário final.
Queremos ser o mais transparente possível com você. Mas, como desenvolvedor de apps, você é a única pessoa responsável por responder ao formulário da seção "Segurança dos dados" do Google Play em relação às práticas de coleta, compartilhamento e segurança de dados do usuário final.
Como usar as informações desta página
Esta página lista os dados do usuário final coletados apenas pela versão mais recente do SDK.
Para concluir a divulgação de dados, use o guia sobre tipos de dados do Android e defina o tipo que melhor descreve os dados coletados. Na divulgação de dados, considere também a forma como o app específico compartilha e usa os dados coletados.
Acesso e coleta de SDK do tipo de dados
Pacotes:
com.google.android.gms:play-services-afs-native
com.google.ads.afsn
Dados coletados automaticamente
O SDK do AFS coleta os dados a seguir automaticamente. Todos os dados são transmitidos do dispositivo para o Google com o objetivo de veicular anúncios e criptografados em trânsito. As informações pessoais do usuário nunca são coletadas, a menos que sejam enviadas em uma consulta do usuário pelo seu app.
Dados | Esses dados são coletados para as seguintes finalidades: |
---|---|
Endereço IP |
Resumo:
O endereço IP é usado no monitoramento de fraudes e abusos para determinar a localização aproximada do usuário. O local aproximado é usado para garantir que os anúncios veiculados estejam em conformidade com as regulamentações locais e exibir anúncios relevantes à localização geográfica mais ampla de um usuário. |
Atividade no app
|
Resumo:
Seu app fornece a consulta do usuário para retornar anúncios de pesquisa relevantes para a palavra-chave. Medimos as visualizações e o engajamento (toques) nos anúncios retornados. |
Diagnósticos |
Resumo:
O SDK mede a latência de renderização dos anúncios para permitir que as melhorias do produto sejam implementadas e medidas. Também enviamos relatórios de erros/falhas e, às vezes, adicionamos outra instrumentação conforme necessário para entender como a funcionalidade é usada pelos editores. |
Identificadores do dispositivo e outros |
Resumo:
O ID do dispositivo é usado para ajudar no monitoramento de fraudes e abusos, bem como na medição da performance de anúncios. |