Está en la página 1de 6

E

Este texto
o forma pa
arte de E
El Gran libro de Android
A
d
de la edittorial
M
Marcombo
o, de Jess
s Toms
M
Ms informaccin en www..androidcurs o.com

11.4 A
adiendo
o publiciidad en tu
t aplicacin con
n AdMob
b.
H
Hay muchas maneras de
e monetizar una aplicacin. Una de las opcionees ms acep
ptadas
por lo
os usuarios es la de poner publicid
dad en las aplicaciones
s, ya que noo requiere que
q
el
usuarrio pague na
ada directam
mente. Para e
esto, Android
d no impone ningn tipo de restricci
n, se
pueden realizar acuerdos
a
con cualquier compaa de
d publicidad
d. Algunas dde las platafo
ormas
que tte permiten insertar anuncios en ttus aplicacio
ones son: AdMob
A
(Gooogle), iAd (A
Apple),
AdHu
ub (Samsun
ng), AirPush
h, Millenniall Media, MobFox
M
y GeenApp
G
(ppara promoc
cionar
aplica
aciones).

E
En este aparttado veremos cmo aad
dir publicidad
d de la comp
paa AdMo
ob (ADvertising on
MOBile") que es propiedad de Google. E
Esta compaa ofrece solluciones parra aadir anu
uncios
en ap
plicaciones desarrolladas
d
s en Android , iOS, webO
OS, Flash Lite
e, Windows P
Phone y cua
alquier
naveg
gador para mvil.
m
El anuncio que se
e visualiza en
e cada mom
mento es seeleccionado por la
comp
paa segn el tipo de ap
plicacin, situ
uacin geogrfica y el us
suario en conncreto que la
a est
milar al que ofrece Goo
utiliza
ando. Su fun
ncionamiento
o es muy sim
ogle a travss de su com
mpaa
AdSe
ense, con el que
q podemo
os recibir ingrresos inserta
ando anuncio
os en nuestroos sitios Web
b.

Vdeo
o[Tutorial]: AdMob: cmo obtener ingresos de su aplicacin

Ejercic
cio paso a paso:
p
Una prrimera aplica
acin con anuncios
1. C
Crea un nuevvo proyecto con
c los siguie
entes datos:
Applicat
tion Name: Anuncios
Package name: com.example.an
nuncios
S
API 9 (2.3)
Minimum Required SDK:

N
NOTA: Se requuiere una verssin de Androoid 2.3 o superrior para podeer utilizar Gooogle Play Serrvices.
2. A
Abre Android
d SDK Man
nager y ase
egrate que el paquete
e Google Pllay Services
s est
in
nstalado:

1. A continuaci
n vamos a importar al w
workspace el proyecto co
on las libreraas de Google
e Play
S
Services. Pu
uedes saltarrte el siguie
ente punto si ya lo ha
as importadoo para proy
yectos
a
anteriores (Pu
uedes verific
carlo mirando
o si en el Pak
kage Explore
er aparece eel proyecto go
ooglep
play-services_
s_lib).
2. U
Utilizando el entorno Ecliipse, entra a File > Impo
ort > Android
d > Existing A
Android Cod
de Into
W
Workspace. Pulsa en Brrowse, y ve a la carrpeta donde est instalaado Android
d SDK
seleccciona
carpeta
M
Manager.
Desde
sta,
la
/android-ssdk/extras/google/
g
google_play_
_services/libp
projects/goog
gle-play-serv
vices_lib. De
ebera apareecer seleccio
onado
u
un proyecto lllamado goog
gle-play-servvices_lib. Pullsa en Finish
h.

U
Utilizando el entorno
e
And
droid Studio
o, abre la ruta
a donde est
instalado A
Android Stud
dio. En
W
Windows pue
ede ser C:\
\Users\<Usua
ario>\AppDat
ta\Local\And
droid\androiidstudio. Desde
D
e
esta carpeta, accede a la ruta sdk\\extras\goog
gle\google_play_servicces\libproje
ects y
ccopia la carp
peta googleplayservicces_lib a la carpeta de proyectos dde Android Studio
S
(p
por defecto esta
e
carpeta
a se llama AAndroidStudi
ioProjects, y est dentro
o de la carpe
eta de
u
usuario). Esto
o es solo porr comodidad , puede esta
ar en cualquier otro sitio. Copia a la misma
m
ccarpeta el archivo androidsupp
a
portv13.jar que en
ncontrars en sdk\ex
xtras\
android\supp
port\v13.
3. E
En
el
Anuncioss
vamos
s
a
importar
i
esta
lib
brera.
proyecto
U
Utilizando Ec
clipse, haz clic
c con el bo
otn derecho
o y seleccion
na Propertiess > Android. En la
sseccin de seccin
s
de libreras, pul sa en el bo
otn Add y seleccionaa el proyecto que
a
acabas de im
mportar.
U
Utilizando el entorno An
ndroid Stud
dio, con el proyecto abierto,
a
ves a File > Project
P
S
Structure... y selecciona en la izquie
erda Module
es. Hacer clic en el botn de mas (+)
( de
a
arriba y sele
eccionar Imp
port Module. En la venttana que ap
parece, seleccciona la ca
arpeta
g
googleplayservices_li
ib y pulsa en
n aceptar. En
n las ventana
as siguientess, acepta todas las
o
opciones por defecto. Otra
O
vez en
n la ventana donde he
emos selecccionado Modules,
a
asegrate de
e que nuestrro proyecto ssigue selecc
cionado, elig
ge la pestaaa Dependen
nces y
p
pulsa en el botn
b
mas (+)
( que apa rece a la de
erecha. Puls
sa en Librarry y seleccio
ona la
librera que acabamos de
e aadir.
C
Con esto, ya deberan esttar las libreras adecuada
as para traba
ajar con Gooogle AdMob.
4. H
Hay dos form
mas de aadir un anunci o, por cdigo o por XML
L. Lo ms seencillo es a
adirlo
p
por XML. Para ello, copia el siguiente elemento dentro dell RelativeL
Layout
d
de activity_m
main.xml:
<
<com.google.
.android.gms
s.ads.AdView
w
android:
:id="@+id/ad
dView"
android:
:layout_widt
th="match_pa
arent"
android:
:layout_heig
ght="wrap_co
ontent"
android:
:layout_alig
gnParentBott
tom="true"
android:
:layout_alig
gnParentLeft
t="true"
ads:adSi
ize="BANNER"
ads:adUn
nitId="ADMOB
B_PUBLISHER_
_ID"/>

N
NOTA: En el atributo adU
UnitId hemoss puesto ADM
MOB_PUBLISH
HER_ID. Ah va el ID qu
ue nos
prroporcionar AdMob. Al final del tutoriaal conseguirem
mos este ID.

5. C
Como estamos utilizando
o atributos q
que no son de Android (los del esppacio de nom
mbres
ads), tendrem
mos que aad
dir la siguien te lnea al elemento principal (el RelaativeLayout):
)
<Rela
ativeLayout
x
xmlns:ads="h
http://schem
mas.android .com/apk/resauto"
x
xmlns:androi
id=
6. A
Ahora, en la
a clase Main
nActivity, in
ndicaremos al API de AdMob
A
que nos muesttre un
a
anuncio. Para
a ello, copia dentro del m
mtodo onCre
eate() las sig
guientes lneeas:
AdVie
ewadView=(AdView)fi
indViewById (R.id.adView);
AdReq
questadRequ
uest=newA
AdRequest.Bu
uilder().build();
adVie
ew.loadAd(ad
dRequest);

P
Pulsa Shift-C
Ctrl-O para incorporar lo
os imports automticame
ente. La claase AdReque
est se
e
encuentra definida en dos
s paquetes d
diferentes. Uttiliza el que se
s indica a co
continuacin:

7. E
En AndroidM
Manifest.xml, hay que
e pedir los permisos de
A
ACCESS_NE
ETWORK_S
STATE dentrro de la etiqu
ueta <manife
est>:

INTERNET
T

<uses
spermission
nandroid:na
ame="android
d.permission.INTERNET"
"/>
<uses
spermission
nandroid:na
ame="android
d.permission.ACCESS_NE
ETWORK_STATEE"/>
8. T
Tambin en AndroidMa
anifest.xml, dentro de la etiqueta <applicati
tion>, aad
de las

ssiguientes etiquetas:
<meta
adata
a
android:name
e="com.googl
le.android.g
gms.version"
a
android:valu
ue="@integer
r/google_pla
ay_services_
_version"/>
<acti
ivity
a
android:name
e="com.googl
le.android.g
gms.ads.AdActivity"
a
android:conf
figChanges="keyboard|ke
eyboardHidd
den|orientat
tion|

scree
enLayout|uiM
Mode|screenS
Size|smalles
stScreenSizee"/>

S
Siempre que utilices los servicios
s
de Google Play
y es imprescindible que aaadas la etiqueta
<
<meta-data>
> que se mue
estra para d efinir la vers
sin. Adems
s, se ha decclarado una nueva
a
actividad que
e ser usada para visu
ualizar el anuncio cuand
do el usuarioo pulse sob
bre su
b
banner.
9. S
Solo nos queda crrear una cuenta en AdMob. Para ello entra en la
p
pgina www.g
google.com/ads/admob/ y pulsa en Sign
S
Up with AdMob paraa crear la cue
enta.
10. In
ntroduce tod
dos los dato
os solicitadoss. Una vez registrada la
a cuenta see presentaran dos
o
opciones: Mo
onetizar (para
a poner an
nuncios en tus aplicaciones) o Pr
Promocionar (para
a
anunciar tus aplicaciones
a
). Haz clic en
n la primera opcin.

11. E
En el siguiente paso, sele
ecciona la op
pcin Aadirr aplicacin manualmente
m
te. Introduce como
n
nombre de la
a aplicacin: Anuncios
A
y sselecciona Android
A
como
o plataforma.. Despus ha
az clic
e
en Aadir apllicacin.

12. A continuaci
n, seleccion
na como form
mato de anun
ncio: Bannerr, el periodo de actualizacin y
e
estilo que dessees e introd
duce como n
nombre del bloque
b
de an
nuncios: Bannner inferior. Pulsa
e
en Guardar.

13. P
Por ltimo, se
e mostrar el
e ID del bloq
que de anunc
cios que aca
abas de conffigurar. Copia
a este
ID
D en el porta
apapeles y pu
ulsa el botn
n Listo.

14. A
Abre e layout activity_ma
ain.xml del p
proyecto y pega dentro del
d atributo aadUnitId el ID del
a
anuncio:

<com.
.google.andr
roid.gms.ads
s.AdView

a
ads:adUnitId
d="caapppu
ub230787534
46715292/86
646625924"/>

15. E
Ejecuta la ap
plicacin en un dispositivvo real. El an
nuncio ha de
e aparecer een la parte in
nferior
d
de la pantalla
a. La primera
a vez puede ttardar ms tiiempo en pro
ocesar la petticin del anu
uncio.
N
Nota: En casso de utilizarr un emulado
or debers instalar
i
antes Google Pllay Services. Este
proceso resullta bastante complejo.
c

Ejercic
cio paso a paso:
p
Escucchador de eve
entos sobre vista de
anunciios
Pode
emos hacer un seguimie
ento de los e
eventos relacionados co
on los anunccios aadiendo un
escucchador de la
a clase AdLi
istener a la
a vista del anuncio. As podemos reegistrar cuan
ndo se
carga
a un anuncio
o, cuando es abierto, si se
e produce algn error, ettc.
1. A
Aade la sigu
uiente lnea al
a final del m todo onCre
eate():
adVie
ew.setAdList
tener(newmi
iAdListener ());

2. A
Aade el sigu
uiente cdigo
o al final de la
a clase, ante
es de la ltim
ma }:
class
smiAdListen
nerextendsAdListener {

@Ove
erride
publicvoidonAdLoaded( ){

Toast.mak
keText(MainA
Activity.th is,"onAdLo
oaded",

Toast.LEN
NGTH_SHORT).show();
}

@Ove
erridepubli
icvoidonAd
dOpened(){

Toast.mak
keText(MainA
Activity.th is,"onAdOp
pened",

Toast.LEN
NGTH_SHORT).show();
}

@Ove
erride publicvoidonAdLeftApp
plication(){

Toast.mak
keText(MainA
Activity.th is,"onAdLe
eftApplicati
ion",

Toast.LEN
NGTH_SHORT).show();
}

@Ove
erride
publicvoidonAdClosed( ){

Toast.mak
keText(MainA
Activity.th is,"onAdCl
losed",

Toast.LEN
NGTH_SHORT).show();
}

@Ove
erride
publicvoidonAdFailedT
ToLoad(inte
error){

Toast.mak
keText(MainA
Activity.th is,"onAdFa
ailedToLoad:"+error,,

Toast.LEN
NGTH_SHORT).show();
}
}
H
Hemos crea
ado una nueva clase que extiend
de AdListe
ener para q
que actue como

e
escuchador de los eventos asocia dos a la visualizacin
v
de un anuuncio. El mtodo
m
o
onAdLoaded() ser llama
ado cada vezz que se carg
gue un nuev
vo anuncio. H
Ha de aparec
cer un
T
Toast con el primer anuncio y cada
a vez que es
s reemplazado (En nuesstra configuracin
ccada 60 seg
g). El mtod
do onAdOpenned() es lla
amado cuand
do el usuarrio pulsa sob
bre el
b
banner y se abre la nuev
va actividad para el anuncio. El mtodo onAdLefftApplicati
ion()
e
es llamado cuando se sa
ale de muesttra aplicacin
n (suele ocurrir tras el evvento anterio
or). El
m
mtodo onAdC
Closed() es
s llamado cu ando el usua
ario cierra el anuncio parra volver a nu
uestra

a
aplicacin. Finalmente el
e mtodo onnAdFailedTo
oLoad() es llamado cu
uando se pro
oduce
a
algn error.
3. E
Ejecuta la ap
plicacin y ob
bserva los e
eventos que van ocurrien
ndo. Para elllo prueba a hacer
cclic en un anu
uncio para qu
ue se abra o
otra ventana y despus vuelve a la applicacin.

Enlaces de inters
s: Para apren
nder ms sobre Google AdMob:.
A

h
https://develop
pers.google.c
com/mobile-a ds-sdk/docs/?hl=es

h
https://develop
pers.google.c
com/mobile-a ds-sdk/docs/admob/funda
amentals?hl=ees

h
https://develop
pers.google.c
com/mobile-a ds-sdk/docs/admob/interm
mediate?hl=ess