Pré-requisitos
Para seguir este guia de implementação, é necessário ter familiaridade com:
- Implementação de Anúncios personalizados de pesquisa (CSA) do AFS protocolo
- Desenvolvimento de apps Android
- Associação dos Anúncios para celular do Google SDK para Android (agora parte do Google Play Services) com um projeto do Android Studio. É necessário ter a versão 9.0.0 do Google Play Services.
Classes
Para veicular anúncios do AFSMA (também conhecidos como anúncios de pesquisa de altura dinâmica) em seu aplicativo, implemente as seguintes classes:
- Esta classe é herdada 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. ASearchAdView
precisa ser adicionada 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, será necessário chamar o métodosetAdSize()
. comAdSize.SEARCH
para solicitar anúncios do AFSMA. Outros valores de enumeração solicitarão anúncios não compatíveis com o AFS em apps para dispositivos móveis. - Chame o método
setAdUnitId()
nesse objeto com seu código de propriedade.
DynamicHeightSearchAdRequest.Builder
- Esta classe encapsula os parâmetros de solicitação de anúncio. Isso é análogo à configuração de parâmetros nos objetos de solicitação de anúncio JavaScript (opções de página, opções de bloco) para o AFS na Web para computadores e dispositivos móveis.
- Definir 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 um Activity
para criar um SearchAdView
.
como uma subvisualização de um ViewGroup
. Para solicitar anúncios do AFSMA corretamente, o 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
...
No mesmo Activity
, crie um DynamicHeightSearchAdRequest.Builder
que
determina os parâmetros do anúncio que serão renderizados no SearchAdView
.
Os anúncios do AFSMA são configurados da mesma maneira que os anúncios personalizados de pesquisa do AFS.
veja os anúncios do AFS
Referência
para mais detalhes.
// 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
DynamicHeightSearchAdRequest.Builder
objeto.
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 por meio de métodos setter
no objeto DynamicHeightSearchAdRequest.Builder
.
Qualquer parâmetro que não tenha um método setter no
DynamicHeightSearchAdRequest.Builder
pode ser definido usando pares de chave-valor com o
setAdvancedOptionValue()
.
Confira os anúncios personalizados de pesquisa do AFS
Referência
para uma lista completa de configurações que podem ser definidas com o
setAdvancedOptionValue()
.
O parâmetro da chave precisa ter o prefixo "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 o definir com setAdvancedOptionValue
,
a segunda vai substituir o valor da primeira.
Como investigar erros
O SearchAdView
(searchAdView
aqui) contém um método setAdListener()
.
para ajudar a investigar os 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);
}
});
Constantes usadas no método de callback onAdFailedToLoad()
estão descritas na API
Referência.
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 as práticas de coleta, compartilhamento e segurança de dados de um app.
Nesta página, você encontra os requisitos da divulgação de dados relacionados ao seu uso do SDK nativo do AFS (também aplicável ao uso do AdSense para Shopping). Nesta página, você pode encontrar informações sobre se e como nossos SDKs lidam com os dados do usuário final.
Nosso objetivo é oferecer o máximo de transparência possível ao ajudar você. No entanto, como desenvolvedor do app, você é a única pessoa responsável por decidir como 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 do seu app.
Como usar as informações desta página
Nesta página, listamos os dados do usuário final coletados somente pela versão mais recente do SDK.
Para concluir a divulgação de dados, use o guia sobre tipos de dados do Android e determine qual tipo descreve melhor os dados coletados. Na divulgação de dados, considere também a forma como o app específico compartilha e usa os dados coletados.
Acessos e coletas de SDK de tipos 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 para fora do dispositivo ao Google com a finalidade 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 | Estes dados são coletados para as seguintes finalidades: |
---|---|
Endereço IP |
Resumo:
O endereço IP é usado no monitoramento de fraudes e abusos, além de descobrir a localização aproximada do usuário. O local aproximado é usado para garantir que os anúncios veiculados estejam em conformidade com os regulamentos locais e fornecer anúncios relevantes à localização geográfica aproximada do usuário. |
Atividade em apps
|
Resumo:
Seu app fornece a consulta do usuário para retornarmos anúncios de pesquisa relevantes à palavra-chave. Medimos as visualizações e o engajamento (toques) com os anúncios retornados. |
Diagnóstico |
Resumo:
O SDK mede a latência de renderização dos anúncios para permitir que melhorias no produto sejam implementadas e medidas. Também enviamos relatórios de erros/erros e, ocasionalmente, adicionamos outras instrumentações conforme necessário para entender como a funcionalidade é usada pelos editores. |
Identificadores do dispositivo e outros |
Resumo:
O ID do dispositivo é usado para monitorar fraudes e abusos, além de medir a performance de anúncios. |