[Android] – Admob

sábado, 11 de junho de 2011
por Beneti

Bom, hoje vou dar uma dica para a adicionar propaganda na sua aplicação android. Apesar do AdMob ter a documentação, pode existir alguma falha no entendimento. Primeiro passo, claro é você ser cadastrado no AdMob e ter o seu ID editor da aplicação. É necessário baixar o SDK do AdMob. Coloque o .jar em algum lugar que você esteja acostumado a deixar e adicione no projeto. Caso tenha dúvida de como fazer isso, siga:

  1. Clique com o botão direito em cima do projeto e clique em Properties;
  2. Clique em Java Build Path, do lado esquerdo;
  3. Clique na aba Libraries;
  4. Clique em Add Jars… ou Add External Jars… (dependendo de onde você colocou o arquivo .jar);
  5. Selecione o arquivo (hoje o nome é GoogleAdMobAdsSdk-4.1.0.jar) e dê OK;

Feito isso, vamos ao que interessa. É necessário alterar o manifest, criar um resource, adicionar esse resource no layout, chamar a propaganda e testar.

Alterando o manifest

Insira a seguinte linha:

<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation"/>

Para o AdMob funcionar, são duas permissões. Adicione:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Criando o resource

Caso já exista o arquivo attrs.xml dentro do diretório values, apenas acrescente o código abaixo, apartir da tag resource. Caso não exista, crie o arquivo e adicione tudo.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="com.google.ads.AdView">
        <attr name="adSize">
            <enum name="BANNER" value="1" />
            <enum name="IAB_MRECT" value="2" />
            <enum name="IAB_BANNER" value="3" />
            <enum name="IAB_LEADERBOARD" value="4" />
        </attr>
        <attr name="adUnitId" format="string" />
    </declare-styleable>
</resources>

Adicionando o resource no layout

Abra o layout que você deseja colocar a propaganda e insira o código:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
  <com.google.ads.AdView android:id="@+id/adView"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         ads:adUnitId="MY_AD_UNIT_ID"
                         ads:adSize="BANNER"
                         ads:loadAdOnCreate="true"/>
</LinearLayout>

Note que a linha ( xmlns:ads=”http://schemas.android.com/apk/lib/com.google.ads” ) é extremamente importante. Se você NÃO colocar, dá erro de parse do XML e se você colocar ERRADO vai dar erro na hora de exibir. É necessário alterar o MY_AD_UNIT_ID, para o ID do editor.

Chamando a propaganda

AdView adView = (AdView)this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest();
adView.loadAd(adRequest);

Testando no emulador

Para aparecer a propaganda e você conseguir ver, adicione a seguinte linha, antes do adView.load:

adRequest.addTestDevice(AdRequest.TEST_EMULATOR);

Pronto. Espero ter sido de ajuda. Uma outra observação, caso dê o erro Error inflating class com.admob.android.ads.AdView, é por que o recurso não foi definido, no passo do attrs.xml. Até a próxima!


  1. 7 comentários para “[Android] – Admob”

  2. Pablo George Disse:

    Onrigado… me ajudou muito..
    abraço..

  3. Pablo George Disse:

    Beneti, uma pergunta…
    toda vez que vou publicar um app no Android Market da a seguinte msg “Este apk necessita de 1 recursos que serão usados para a filtragem do Android Market.
    android.hardware.touchscreen”

    Como usar esse pacote?

    Abraço.

  4. Vortex Disse:

    Sua dica foi direta, simples e clara.

    Me ajudou muito pois os outros sites sao muito tecnicos e pouco objetivos!

    Vlw

  5. Beneti Disse:

    Valeu, cara.

  6. Beneti Disse:

    Cara, dá uma olhada aqui -> http://www.google.com/support/forum/p/Android+Market/thread?tid=0ba85d70b1d605b6&hl=en

    Nunca mexi com essa permissão… Mas com certeza você não foi o primeiro nem o último a ter esse problema.

  7. renato Disse:

    Olá parabéns pelo tópico muito bom

    queria tirar uma dúvida nessa linha

    ads:adUnitId=”MY_AD_UNIT_ID”
    tu diz pra colocar o id do editor ,não entendi isso e qndo eu for postar no market que id vai ser aki

    Obrigado

  8. Beneti Disse:

    Renato, não entendi a sua dúvida. Não tem ligação alguma o ID do admob com alguma coisa do market.

    Ao se cadastrar no Admob e criar um site/aplicativo, vai ter um ID. É esse ID que você tem que colocar. Está em “ID do editor”.

Deixe um comentário