Configurar o acesso direto ao Ad Exchange

O SDK dos anúncios para dispositivos móveis do Google oferece suporte à monetização de apps com uma propriedade da Ad Exchange. Neste guia, mostramos como configurar seus apps para todos os formatos de anúncio aceitos pelo Ad Exchange.

Pré-requisitos

Configurar o app para acessar o Ad Exchange

Adicione o ID do app do Ad Manager (identificado na interface do Ad Manager) ao arquivo AndroidManifest.xml do seu app usando uma tag <meta-data> com android:name="com.google.android.gms.ads.APPLICATION_ID". Para android:value, insira seu próprio ID do app do Ad Manager, que fica entre aspas.

<manifest>
    <application>
        <!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    </application>
</manifest>

Além disso, a falha na adição da tag <meta-data>, conforme mostrado acima, resulta em uma falha com a mensagem:

Missing application ID.

Em seguida, inicialize o SDK dos anúncios para dispositivos móveis do Google e selecione um formato de anúncio para exibir. O restante deste guia implementa o formato de banner para ilustrar como carregar um anúncio do Ad Exchange. As mesmas etapas podem ser aplicadas a qualquer formato de anúncio compatível com o SDK dos anúncios para dispositivos móveis do Google.

Carregar um anúncio do Ad Exchange

É possível usar um código de propriedade da Web do Ad Exchange com um caractere de barra inclinada final no seu app em vez de um ID de bloco de anúncios.

Por exemplo, para carregar um anúncio de banner, coloque um AdManagerAdView no layout do Activity da seguinte maneira:

# main_activity.xml
...
  <com.google.android.gms.ads.admanager.AdManagerAdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adManagerAdView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-mb-app-pub-5629679302779023/">
  </com.google.android.gms.ads.admanager.AdManagerAdView>

A falha na adição de um caractere "/" ao final do código da propriedade da Web do Ad Exchange, conforme mostrado acima, resulta em um erro de solicitação de anúncio com a mensagem:

Invalid Request. Cannot determine request type. Is your ad unit id correct?

Também é possível converter um código de propriedade da Web do Ad Exchange em um bloco de anúncios. Depois disso, use a interface do Ad Manager para gerar uma tag do Ad Exchange e copiá-la para o app. A tag gerada precisa ter o código da propriedade da Web do Ad Exchange, seguido por IDs de blocos de anúncios descendentes sem um caractere de barra inclinada no final, por exemplo: ca-mb-app-pub-5629679302779023/banner

Como alternativa, você pode criar um AdManagerAdView de forma programática:

AdManagerAdView adView = new AdManagerAdView(this);

adView.setAdSizes(AdSize.BANNER);
adView.setAdUnitId("ca-mb-app-pub-5629679302779023/");

// TODO: Add adView to your view hierarchy.
val adView = AdManagerAdView(this)

adView.adSizes = AdSize.BANNER
adView.adUnitId = "ca-mb-app-pub-5629679302779023/"

// TODO: Add adView to your view hierarchy.

Depois que o AdManagerAdView estiver em vigor, você poderá chamar o método loadAd() na classe AdManagerAdView e personalizar o comportamento do seu anúncio usando eventos de anúncios.

Pronto! Seu app está pronto para carregar e mostrar anúncios de banner do Ad Exchange.

Além disso, é possível usar uma propriedade da Web do Ad Exchange para carregar e mostrar outros formatos de anúncio do Ad Exchange seguindo os respectivos guias:

(Somente editores europeus aprovados) Adicionar preços mínimos

Envie uma solicitação do recurso "Preços mínimos".

Depois da aprovação, é possível incluir um piso público ou privado na solicitação de anúncio usando os parâmetros pubf e pvtf, respectivamente. No exemplo de código a seguir, substitua "123" pelos preços mínimos em micros e pela moeda padrão da rede. Exemplo de como os micros são aplicados: se a moeda padrão for USD, inserir "6000000" será o equivalente a US $6,00.

Bundle extras = new Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");

AdManagerAdRequest request = new AdManagerAdRequest.Builder()
    .addNetworkExtrasBundle(AdMobAdapter.class, extras)
    .build();
val extras = Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");

val request = AdManagerAdRequest.Builder()
    .addNetworkExtrasBundle(AdMobAdapter::class::java, extras)
    .build();