Gerenciando e Otimizando Campanhas de ... - univale.com.br · 58 Aumente a audiência do seu site...

8
artigo Eric Gomes ([email protected]): é formado em Ciências da Computação pela PUC-SP e atua na área de desenvolvimento de software há 13 anos. Atualmente trabalha com integração e arquitetura de sistemas através da consultoria SysMap Solutions. É responsável pela empresa Octavarium Tecnologia, especializada no gerenciamento e otimização de campanhas de links patrocinados do Google AdWords para clientes. O programa de publicidade do Google disponibiliza uma poderosa API para o controle total de campanhas publicitárias no Google AdWords. Neste artigo, veremos como utilizar a API do AdWords para desenvolver um software que gerencia uma campanha de publicidade fictícia no Google AdWords baseada no fluxo de vendas de produtos de uma loja também fictícia. 58 www.mundoj.com.br 58 Aumente a audiência do seu site com a poderosa API de publicidade do Google Gerenciando e Otimizando Campanhas de Links Patrocinados com a API do Google AdWords A Internet já revolucionou vários aspectos da vida das pes- soas. Isso também é verdade quando falamos da forma como as empresas divulgam seus produtos e serviços através da publicidade. Atualmente, as principais questões, como análise de mercado, estima- tivas de retorno sobre investimento, mensuração de resultados levam apenas minutos para serem respondidas. Já as campanhas nas chamadas mídias tradicionais, como rádio, televisão, jornal e revista, dificilmente atingem tamanha precisão e menos ainda velocidade comparável. Entre- tanto, a publicidade utilizando a Internet como mídia também passa por uma revolução. Ainda existe uma grande parte de anúncios em páginas web mensurada através da relação custo por exibição, ou seja, o anunciante paga de acor- do com o número de vezes que o anúncio foi exibido. Geralmente existe um custo fixo a cada mil exibições. Por isso, esta métrica leva o nome de CPM: custo por mil. As campanhas que utilizam a métrica CPC funcionam de forma diferente. O cliente só paga quando alguém realmente vê e clica no seu anúncio. Por isso esta métrica leva o nome de CPC: custo por clique. Isto representa uma enorme diferença. Com a publicidade CPC, o anunciante consegue mensurar de forma mais precisa se o investimento está ou não valendo à pena. O custo para o anunciante só acontece quando realmente conseguiu atrair um visitante para o domínio do seu website (blog ou qualquer outra página na In- ternet). Vale notar que mesmo para as campanhas baseadas em CPC, é possível calcular-se a CPM equivalente. Este artigo apresenta a poderosa API disponibilizada pelo Google para otimizar campanhas de links patrocinados do Google AdWords. Primeiramente veremos alguns benefícios da publicidade on-line em re- lação às mídias tradicionais e como mensurar os investimentos nesta mí- dia, através das métricas CPM e CPC. Em seguida, vamos ver a importante participação do Google neste mercado e apresentar o seu programa de publicidade na Internet: o Google AdWords. Então chegamos ao assunto principal deste artigo que é apresentar a API do Google AdWords e mostrar como podemos utilizá-la para gerenciar e otimizar campanhas de links patrocinados do Google AdWords. O artigo é acompanhado de um software simples que exemplifica a utilização da API para a otimização de uma campanha de links patrocinados para uma loja.

Transcript of Gerenciando e Otimizando Campanhas de ... - univale.com.br · 58 Aumente a audiência do seu site...

Page 1: Gerenciando e Otimizando Campanhas de ... - univale.com.br · 58 Aumente a audiência do seu site com a poderosa API de publicidade do Google ... AdService Anúncios . com/api/adwords/v13

a r t i g o

Eric Gomes

([email protected]): é formado em Ciências da Computação pela PUC-SP e atua na área de desenvolvimento de software há 13 anos. Atualmente trabalha com integração e arquitetura de sistemas através da consultoria SysMap Solutions. É responsável pela empresa Octavarium Tecnologia, especializada no gerenciamento e otimização de campanhas de links patrocinados do Google AdWords para clientes.

O programa de publicidade do Google

disponibiliza uma poderosa API

para o controle total de campanhas

publicitárias no Google AdWords.

Neste artigo, veremos como utilizar

a API do AdWords para desenvolver

um software que gerencia uma

campanha de publicidade fictícia no

Google AdWords baseada no fluxo

de vendas de produtos de uma loja

também fictícia.

58 www.mundoj.com.br58

Aumente a audiência do seu site com a poderosa API de publicidade do Google

Gerenciando e Otimizando Campanhas de

Links Patrocinados com a API do Google

AdWords

A Internet já revolucionou vários aspectos da vida das pes-soas. Isso também é verdade quando falamos da forma como as empresas divulgam seus produtos e serviços

através da publicidade.

Atualmente, as principais questões, como análise de mercado, estima-tivas de retorno sobre investimento, mensuração de resultados levam apenas minutos para serem respondidas. Já as campanhas nas chamadas mídias tradicionais, como rádio, televisão, jornal e revista, dificilmente atingem tamanha precisão e menos ainda velocidade comparável. Entre-tanto, a publicidade utilizando a Internet como mídia também passa por uma revolução.

Ainda existe uma grande parte de anúncios em páginas web mensurada através da relação custo por exibição, ou seja, o anunciante paga de acor-do com o número de vezes que o anúncio foi exibido. Geralmente existe um custo fixo a cada mil exibições. Por isso, esta métrica leva o nome de CPM: custo por mil. As campanhas que utilizam a métrica CPC funcionam de forma diferente. O cliente só paga quando alguém realmente vê e clica no seu anúncio. Por isso esta métrica leva o nome de CPC: custo por clique. Isto representa uma enorme diferença.

Com a publicidade CPC, o anunciante consegue mensurar de forma mais precisa se o investimento está ou não valendo à pena. O custo para o anunciante só acontece quando realmente conseguiu atrair um visitante para o domínio do seu website (blog ou qualquer outra página na In-ternet). Vale notar que mesmo para as campanhas baseadas em CPC, é possível calcular-se a CPM equivalente.

Este artigo apresenta a poderosa API disponibilizada pelo Google para otimizar campanhas de links patrocinados do Google AdWords.

Primeiramente veremos alguns benefícios da publicidade on-line em re-lação às mídias tradicionais e como mensurar os investimentos nesta mí-dia, através das métricas CPM e CPC. Em seguida, vamos ver a importante participação do Google neste mercado e apresentar o seu programa de publicidade na Internet: o Google AdWords.

Então chegamos ao assunto principal deste artigo que é apresentar a API do Google AdWords e mostrar como podemos utilizá-la para gerenciar e otimizar campanhas de links patrocinados do Google AdWords. O artigo é acompanhado de um software simples que exemplifica a utilização da API para a otimização de uma campanha de links patrocinados para uma loja.

Page 2: Gerenciando e Otimizando Campanhas de ... - univale.com.br · 58 Aumente a audiência do seu site com a poderosa API de publicidade do Google ... AdService Anúncios . com/api/adwords/v13

5959

Google

Google AdWords

O Google iniciou suas operações há 11 anos e, desde então, aperfeiçoa constantemente o seu principal sistema: o melhor sistema de buscas do mundo. A combinação perfeita entre hardware e software (denominada por alguns como Googleware), a capacidade de manipular um imenso volume de informações e apresentar indicações de websites ordenados por relevância em milésimos de segundos para milhões de pessoas ao mesmo tempo garante hoje ao Google 78% de participação no mercado global de buscas na Internet. Isso significa que, além da melhor search engine, o Google é o site mais acessado e utilizado na Internet em muitos países no mundo todo.

O Google sabe lucrar com essa imensa audiência: através do seu pro-grama de publicidade on-line denominado Google AdWords. O lucro obtido da sua engine de busca financia muitos outros serviços que a empresa mantém (ainda que gerando prejuízos em alguns casos, como o YouTube, por exemplo). Mas o Google vem mudando isso, introduzindo também a sua publicidade em todos os seus serviços, como Orkut, Gmail, YouTube, Earth, Maps e Blogger. As mesmas campanhas de publicidade preparadas para a busca do Google agora também permeiam estes ser-viços, o que traz benefícios não só ao próprio Google, mas também aos anunciantes. Além disso, o Google também disponibiliza outro programa relacionado aos links patrocinados denominado Google AdSense, no qual o Google paga aos donos de sites que aceitam veicular a publici-dade on-line do Google em suas páginas. Os anúncios exibidos sempre estão relacionados ao conteúdo e context da página.

O Google apresenta muitos links como resultado de cada busca feita (281 milhões em oito décimos de segundos para a busca por Java no Google Brasil, por exemplo) e garantir que determinado website esteja posicionado entre os 10 primeiros da lista, para que seja exibido logo na primeira página (ou próximo disso), é algo bastante difícil em alguns casos. Basicamente existem duas formas de posicionar seu website na cobiçada primeira página de resultados de busca: SEO e SEM.O SEO sig-nifica “Search Engine Optimization” (otimização para sistemas de busca) e consiste em técnicas para otimizar um website para atingir melhores posições nas buscas. Não é possível pagar ao Google para estar bem po-sicionado nos resultados de sua busca normal. Por outro lado, o SEM, que significa “Search Engine Marketing” (marketing para sistemas de busca), é um programa de publicidade e envolve investimentos em publicidade através da comercialização de anúncios. Este artigo trata do AdWords, que é o SEM aplicado ao Google.

O Google AdWords possibilita justamente isso: que você consiga que seu website seja exibido na primeira página (ou próximo disso), desde que você aceite pagar por isso. A disputa pelas melhores posições com o menor investimento é um dos objetivos no gerenciamento e otimização das campanhas de links patrocinados. O importante, acima de tudo, é atrair visitantes interessados nos produtos e serviços oferecidos pelo site, de forma a torná-los clientes além de visitantes.

O Google vende espaço publicitário na Internet através do seu programa de publicidade on-line denominado AdWords. Para sua utilização, o Google disponibiliza ao anunciante, um sistema com interface web para administração de todos os aspectos relacionados às campanhas publici-

tárias. Além da interface web (em http://adwords.google.com), o Google oferece o software Google AdWords Editor (figura 1) que pode ser bai-xado e instalado no computador e também a Google AdWords API que permite que sejam desenvolvidos softwares customizados integrados ao AdWords. É especificamente sobre esta API que trata este artigo.

As campanhas de publicidade do Google seguem uma estrutura hierár-quica simples, como segue:

Um gerente de conta administra várias contas de clientes, que por sua vez possuem diversas campanhas. Toda campanha possui anúncios e palavras-chave que são agrupados em grupos de anúncios.

Atualmente existem diversos formatos de anúncio, por exemplo, anún-cios para celular, gráficos e de vídeo, porém apenas os anúncios de texto são exibidos nas páginas de resultado de buscas do Google. Neste tuto-rial sobre a AdWords API, utilizamos apenas anúncios de texto.

O Google apresenta os anúncios pagos do AdWords em duas áreas das páginas de resultado de busca: na lateral direita da tela e em alguns casos acima dos resultados da busca gratuita na lateral esquerda (tam-bém conhecida como busca orgânica). De acordo com a palavra-chave utilizada na busca, o Google seleciona os anúncios dos anunciantes interessados por esta palavra-chave e posiciona os anúncios na pági-na. Para garantir um bom posicionamento, o anunciante deve levar em conta dois aspectos básicos: estar disposto a pagar um valor adequado em relação ao valor que os anunciantes concorrentes estão pagando e garantir que os anúncios sejam relevantes, isto é, que seus textos despertem o interesse ao clique do internauta que acabou de realizar a busca. A disputa pelas melhores posições é uma das metas dos anun-ciantes no jogo do AdWords.

Google AdWords API

Após adquirir um maior grau de experiência gerenciando e otimizando campanhas de links patrocinados do Google AdWords e entender real-mente a dinâmica de funcionamento do Google AdWords, o anunciante

Page 3: Gerenciando e Otimizando Campanhas de ... - univale.com.br · 58 Aumente a audiência do seu site com a poderosa API de publicidade do Google ... AdService Anúncios . com/api/adwords/v13

6060 www.mundoj.com.br

Visão técnica

Google AdWords API

(ou a empresa responsável por este trabalho para o anunciante) nota-velmente percebe que existem diversas etapas e processos que podem ser automatizados. A Google AdWords API foi criada justamente para suprir esta necessidade. Através desta API, o anunciante pode elencar seus requisitos e regras de negócio e desenvolver softwares integrados ao sistema AdWords. Isto pode gerar grande vantagem competitiva em relação a anunciantes concorrentes que não dispõem deste recurso no auxílio ao gerenciamento de suas campanhas.

A Google AdWords API é composta por uma série de Web Services. A integração entre a API e o software desenvolvido normalmente acontece através da troca de arquivos XMLs sobre o protocolo HTTP. Basicamente o software faz uma “pergunta” ou “ordena uma ação” à API do AdWords. Esta requisição (request) então trafega pela Internet de forma segura até o servidor do Google, que por sua vez processa, executa a solicitação e responde com um novo arquivo XML de resposta (response).

As funcionalidades do AdWords, disponibilizadas aos anunciantes, estão agru-padas em diferentes Web Services, sendo que cada um disponibiliza operações relacionadas ao seu escopo específico e corresponde a uma estrutura do AdWords, permitindo acesso, alteração e criação dos dados que compõem a estrutura. A tabela 1 apresenta os Web Services, as estruturas com as quais se relacionam no AdWords, seus endpoints (onde podemos baixar os WSDLs) e as principais classes Java para manipulação.

WEB SERVICES ESTRUTURAS WSDL

CampaignSer-vice

Campanhas https://adwords.google.com/api/adwords/v13/CampaignService?wsdl

AdGroupService Grupos de anúncios

https://adwords.google.com/api/adwords/v13/AdGroupService?wsdl

AdService Anúncios https://adwords.google.com/api/adwords/v13/AdService?wsdl

CriterionService Palavras-chave ou canais

https://adwords.google.com/api/adwords/v13/CriterionService?wsdl

AccountService Contas de geren-tes e clientes

https://adwords.google.com/api/adwords/v13/AccountService?wsdl

InfoService API do AdWords http://adwords.google.com/api/adwords/v13/InfoService?wsdl

KeywordTool-Service

Ferramenta de palavras-chave

https://adwords.google.com/api/adwords/v13/KeywordToolService?wsdl

SiteSuggestion-Service

Sugestão de sites https://adwords.google.com/api/adwords/v13/SiteSuggestionService?wsdl

TrafficEstimator-Service

Estimativa de tráfego

https://adwords.google.com/api/adwords/v13/TrafficEstimatorService?wsdl

ReportService Relatórios https://adwords.google.com/api/adwords/v13/ReportService?wsdl

Cada operação de um Web Service contém parâmetros de entrada e saída específicos. Estas estruturas de dados são específicas para cada Web Service e é através da manipulação destes dados que o software é capaz de executar as regras de negócio necessárias.

Cabeçalho SOAP

O cabeçalho SOAP para a comunicação com o Web Services do AdWords é mostrado a seguir e contém as seguintes informações:

-ção para o Google;

-vedor para o Google;

Consumo com Java

Este tutorial utiliza a implementação Apache Axis do protocolo SOAP. Esta API facilita e padroniza a comunicação entre aplicações Java e Web Services. Através da classe WSDL2Java do Axis, foram geradas todas as classes e interfaces Java a partir dos Web Servi-ces do AdWords, disponibilizados pelo Google, necessárias para a integração. Para o Web Service CampaignService, por exemplo, foram geradas as classes Java Campaign, CampaignBudget, Cam-paignStatus, CampaignService e CampaignServiceLocator, entre outras. Os WSDLs estão disponíveis na Internet e suas urls estão na tabela 1 deste artigo. A Listagem 1 mostra uma requisição (ou request) e a respectiva resposta (ou response) da chamada para a operação getAllAdWordsCampaigns do Web Service Campaign-Service.

<soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >

<v13:applicationToken>ZYXwvu-TSR123_456ABCDE</v13:applicationToken>

<v13:developerToken>ABcdeFGH93KL-NOPQ_STUv</v13:developerToken>

<v13:clientEmail></v13:clientEmail>

<v13:email>[email protected]</v13:email>

<v13:password>--------</v13:password>

<v13:useragent>opcional</v13:useragent>

</soapenv:Header>

Page 4: Gerenciando e Otimizando Campanhas de ... - univale.com.br · 58 Aumente a audiência do seu site com a poderosa API de publicidade do Google ... AdService Anúncios . com/api/adwords/v13

<so

apen

v:En

velo

pe x

mln

s:so

apen

v="h

ttp:

//sch

emas

.xm

lsoa

p.or

g/so

ap/

enve

lope

/" x

mln

s:v1

3="h

ttps

://ad

wor

ds.g

oogl

e.co

m/a

pi/a

dwor

ds/v

13">

<

soap

env:

Hea

der>

<v1

3:ap

plic

atio

nTok

en>

</v

13:a

pplic

atio

nTok

en>

<v1

3:de

velo

perT

oken

>er

icgo

mes

@oc

tava

rium

.com

.br+

+B

RL

</v

13:d

evel

oper

Toke

n>

<

v13:

clie

ntEm

ail>

clie

nt_1

+ e

ricgo

mes

@oc

tava

rium

.com

.br

</v

13:c

lient

Emai

l>

<

v13:

emai

l> e

ricgo

mes

@oc

tava

rium

.com

.br

</v

13:e

mai

l>

<

v13:

pass

wor

d>--

----

</v

13:p

assw

ord>

<v1

3:us

erag

ent>

x</v

13:u

sera

gent

>

</s

oape

nv:H

eade

r>

<so

apen

v:B

ody>

<v1

3:ge

tAllA

dWor

dsC

ampa

igns

>

<

v13:

dum

my>

0</v

13:d

umm

y>

<

/v13

:get

AllA

dWor

dsC

ampa

igns

>

</s

oape

nv:B

ody>

</s

oape

nv:E

nvel

ope>

<so

apen

v:En

velo

pe x

mln

s:so

apen

v="h

ttp:

//sch

emas

.xm

lsoa

p.or

g/so

ap/e

nvel

ope/

" xm

lns:

xsd=

"htt

p://w

ww

.w3.

org/

2001

/XM

LSch

ema"

xm

lns:

xsi=

"htt

p://w

ww

.w3.

org/

2001

/XM

LSch

ema-

inst

ance

">

<so

apen

v:H

eade

r>

<

resp

onse

Tim

e so

apen

v:ac

tor=

"htt

p://s

chem

as.x

mls

oap.

org/

soap

/act

or/n

ext"

s

oape

nv:m

ustU

nder

stan

d="0

" xm

lns=

"ht

tps:

//adw

ords

.goo

gle.

com

/api

/adw

ords

/v13

">26

8</r

espo

nseT

ime>

<op

erat

ions

soa

penv

:act

or=

"htt

p://s

chem

as.x

mls

oap.

org/

soap

/act

or/n

ext"

soa

penv

:mus

tUnd

erst

and=

"0"

xmln

s=

"

http

s://a

dwor

ds.g

oogl

e.co

m/a

pi/a

dwor

ds/v

13">

2</o

pera

tions

>

List

agem

1. E

xem

plo

de r

eque

st e

res

pons

e da

ope

raçã

o ge

tAllA

dWor

dsC

ampa

igns

do

Web

Ser

vice

Cam

paig

nSer

vice

.

<

units

soa

penv

:act

or=

"htt

p://s

chem

as.x

mls

oap.

org/

soap

/act

or/n

ext"

soa

penv

:mus

tUnd

erst

and=

"0"

xmln

s=

"ht

tps:

//adw

ords

.goo

gle.

com

/api

/adw

ords

/v13

">2<

/uni

ts>

<re

ques

tId

soap

env:

acto

r="h

ttp:

//sch

emas

.xm

lsoa

p.or

g/so

ap/a

ctor

/nex

t"

soa

penv

:mus

tUnd

erst

and=

"0"

xmln

s=

"ht

tps:

//adw

ords

.goo

gle.

com

/api

/adw

ords

/v13

">

d1

b24a

1edb

8dc4

b068

d16a

1d9e

6d12

8e<

/req

uest

Id>

<

/soa

penv

:Hea

der>

<

soap

env:

Bod

y>

<ge

tAllA

dWor

dsC

ampa

igns

Res

pons

e xm

lns=

"ht

tps:

//ad

wor

ds.g

oogl

e.co

m/a

pi/a

dwor

ds/v

13">

<ge

tAllA

dWor

dsC

ampa

igns

Ret

urn>

<

budg

etA

mou

nt>

1000

0000

0</b

udge

tAm

ount

>

<

budg

etO

ptim

izer

Sett

ings

>

<en

able

d>fa

lse<

/ena

bled

>

<

/bud

getO

ptim

izer

Sett

ings

>

<

budg

etPe

riod>

Dai

ly<

/bud

getP

erio

d>

<

cont

entT

arge

ting>

AllP

lace

men

ts<

/con

tent

Targ

etin

g>

<

conv

ersi

onO

ptim

izer

Sett

ings

>

<en

able

d>fa

lse<

/ena

bled

>

<

/con

vers

ionO

ptim

izer

Sett

ings

>

<

endD

ay>

2009

-09-

07-0

4:00

</e

ndD

ay>

<

geoT

arge

ting>

<ta

rget

All>

true

</t

arge

tAll>

<co

untr

yTar

gets

xsi

:nil=

"tru

e"/>

<re

gion

Targ

ets

xsi:n

il="t

rue"

/>

<m

etro

Targ

ets

xsi:n

il="t

rue"

/>

<ci

tyTa

rget

s xs

i:nil=

"tru

e"/>

<pr

oxim

ityTa

rget

s xs

i:nil=

"tru

e"/>

<

/geo

Targ

etin

g>

Page 5: Gerenciando e Otimizando Campanhas de ... - univale.com.br · 58 Aumente a audiência do seu site com a poderosa API de publicidade do Google ... AdService Anúncios . com/api/adwords/v13

6262 www.mundoj.com.br

A linguagem de programação Java foi escolhida para o código deste tutorial, porém, como a Google AdWords API baseia-se no protocolo SOAP, qualquer linguagem que ofereça suporte a esta tecnologia pode ser utilizada, como Python, DotNet, Ruby, PHP, ou até mesmo Perl, OCaml e ColdFusion.

Todo o comportamento das campanhas pode ser analisado através de relatórios customizados. De acordo com o foco, podem ser ge-rados relatórios de abordagem específica sobre campanhas, grupos de anúncios, palavras-chave e métricas detalhadas sobre taxa de cliques, número de impressões, médias de posicionamento, taxa de conversões, custos, entre outras. Através do Web Service ReportSer-vice, é possível agendar e gerar relatórios customizados através da API.

Custos e Sandbox

A API do Google AdWords tem um custo para o anunciante, pois o Google cobra por sua utilização. Cada funcionalidade está associada a uma quantida-de diferente de unidades de API. Cada 1.000 unidades de API custam U$0,25 (dólares norte-americanos), ou seja, cada unidade custa U$0,00025

As funcionalidades de leitura de estruturas básicas, como campanhas,

anúncios, palavras-chave, geralmente custam apenas 1 unidade (ou U$0,00025), porém as funcionalidades que envolvem alteração ou criação de dados, leitura de processamentos de relatórios, estimativas de palavras-chave, sugestão de sites podem chegar a 20 unidades por requisição. Todas as taxas de solicitações de cada operação da API do AdWords estão detalhadas no site da AdWords API.

Cada chamada está associada a uma funcionalidade e custa uma quantidade específica de unidades de API.

Para permitir que o anunciante só pague pela utilização da API quando o software estiver realmente pronto, o Google disponibiliza gratuitamente um ambiente de testes chamado sandbox. O anunciante não paga durante o desenvolvimento e testes do software no ambiente sandbox. Este ambiente simula o comportamento encontrado no ambiente de produção. Existem duas alterações a serem feitas para se utilizar o sandbox: cabeçalho soap e url dos webservices. 1. A url muda de https://adwords.google.com/api/adwords/v13/ para ht-

tps://sandbox.google.com/api/adwords/v13/ .2. O cabeçalho muda e deve ser preenchido desta forma:

moeda da campanha;

sendo que o e-mail da primeira conta é [email protected], e assim por diante até [email protected];

<soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >

<v13:applicationToken></v13:applicationToken>

<v13:developerToken>[email protected]++BRL

</v13:developerToken>

<v13:clientEmail>[email protected]</v13:clientEmail>

<v13:email>[email protected]</v13:email>

<v13:password>xxxxxxx</v13:password>

<v13:useragent>opcional</v13:useragent>

</soapenv:Header>

<id>9560</id>

<languageTargeting xsi:nil="true"/>

<name>Campanha Teste 1</name>

<networkTargeting>

<networkTypes>SearchNetwork</networkTypes>

<networkTypes>ContentNetwork</networkTypes>

</networkTargeting>

<schedule> <status>Disabled</status> </schedule>

<startDay>2009-09-07-04:00</startDay>

<status>Deleted</status>

</getAllAdWordsCampaignsReturn>

<getAllAdWordsCampaignsReturn>

<budgetAmount>100000000</budgetAmount>

<budgetOptimizerSettings>

<enabled>false</enabled>

</budgetOptimizerSettings>

<budgetPeriod>Daily</budgetPeriod>

<contentTargeting>AllPlacements</contentTargeting>

<conversionOptimizerSettings>

<enabled>false</enabled>

</conversionOptimizerSettings>

<endDay>2037-12-30-05:00</endDay>

<geoTargeting>

<targetAll>true</targetAll>

<countryTargets xsi:nil="true"/>

<regionTargets xsi:nil="true"/>

<metroTargets xsi:nil="true"/>

<cityTargets xsi:nil="true"/>

<proximityTargets xsi:nil="true"/>

</geoTargeting>

<id>9570</id>

<languageTargeting xsi:nil="true"/>

<name>Campanha Loja Mundoj</name>

<networkTargeting>

<networkTypes>SearchNetwork</networkTypes>

<networkTypes>ContentNetwork</networkTypes>

</networkTargeting>

<schedule>

<status>Disabled</status>

</schedule>

<startDay>2009-09-07-04:00</startDay>

<status>Active</status>

</getAllAdWordsCampaignsReturn>

</getAllAdWordsCampaignsResponse>

</soapenv:Body>

</soapenv:Envelope>

Page 6: Gerenciando e Otimizando Campanhas de ... - univale.com.br · 58 Aumente a audiência do seu site com a poderosa API de publicidade do Google ... AdService Anúncios . com/api/adwords/v13

6363

Implementação

Vamos ver agora um exemplo prático de utilização da API do Google AdWords. A aplicação Java que acompanha este artigo utiliza a API para gerenciar e otimizar uma campanha de links patrocinados do Google AdWords. Através do acompanhamento da oscilação da quantidade de produtos em estoque de uma loja fictícia, a aplicação determina quais palavras-chave devem ser utilizadas para ativar o anúncio da campanha on-line da loja no Google. Todos os produtos que estão em estoque precisam ser vendidos. Por isso os nomes dos produtos são utilizados como palavras-chave ativas. Por outro lado, os produtos que já foram vendidos não são utilizados como palavras-chave. A classe que inicia esta aplicação é AdWordsMundoj. Esta classe é responsável por iniciar a loja, colocá-la em funcionamento e anunciar seus produtos no Google AdWords, conforme Listagem 3.

Para rodar a aplicação Java que acompanha este artigo, você precisa de uma conta no Google. Abra e edite o arquivo adwords-mundoj.proper-ties na raiz do projeto e substitua as informações dos campos e-mail, password e clientEmail pelos dados da sua conta no Google (geralmente seu e-mail [email protected]), conforme Listagem 2.

O trecho a seguir exemplifica o funcionamento da aplicação apresentan-do o log de execução. Repare que para este artigo foi definido que o ciclo principal rodará duas vezes. O número exato deve ser ajustado, caso a caso, em um ambiente real.

A relação dos produtos comercializados pela loja fictícia está no arquivo XML thinkgeek-liquidacao.xml na raiz do projeto, conforme Listagem 4. Este XML é o RSS de produtos da seção de liquidação da ThinkGeek. A versão sempre atualizada dos produtos em liquidação da ThinkGeek.com está disponível no site da loja. A biblioteca Rome é utilizada para fazer o parse do arquivo xml, carregar os dados para a memória e po-pular a lista de produtos da loja, conforme Listagem 5. Esta biblioteca realmente cumpre o que promote: "…ending syndication feed confusion by supporting all of 'em" - acabando com a confusão de feeds e rss dando suporte a todos eles.

Em seguida, a aplicação apresenta a situação inicial da loja: as quantidades de produtos que estão em estoque e que foram ven-didos. A partir disso, a aplicação inicia a simulação principal do comportamento da loja, repetindo o mesmo procedimento duas vezes. O comportamento da loja é entrar em funcionamento, quan-

#google adwords apinamespace=https://adwords.google.com/api/adwords/v13

#google adwords authentication & [email protected][email protected][email protected]=Octavarium Tecnologia - Google AdWords - Revista MundojapplicationToken=

Listagem 2. Arquivo de configuração adwords-mundoj.properties.

Loja loja = new Loja("AdWords API Mundoj", PRODUCTS_FILE_PATH);

loja.report();

for (int i=0; i<2; i++) {

loja.funciona();

loja.report();loja.anuncia();

}

Listagem 3. Exemplo do ciclo de vida de uma loja.

<channel> <title>ThinkGeek :: Clearance Products</title> <link>http://www.thinkgeek.com/</link> <description>Stuff for Smart Masses - Clearance Items</description> <language>en-us</language> <pubDate>Thu, 27 Aug 2009 21:25:48 GMT</pubDate> <lastBuildDate>Sat, 29 Aug 2009 20:00:29 GMT</lastBuildDate> <docs>http://blogs.law.harvard.edu/tech/rss</docs> <generator>ThinkGeek, Inc. - Sphorb 6.0.0r4854</generator> <managingEditor>[email protected]</managingEditor> <item> <title>26-Piece PC Repair Tool Kit</title> <link>http://www.thinkgeek.com/a4c2/?cpg=clrss</link> <guid>http://www.thinkgeek.com/a4c2/</guid> <description>&lt;img src="http://www.thinkgeek.com/images/products/thumb/large/26_piece_tool_kit.jpg" width="120" height="85" border="0" align="right"&gt; 26-Piece PC Repair Tool Kit &lt;p&gt;Price: &lt;b&gt;$17.99&lt;/b&gt;&lt;/p&gt;</description> <category>Clearance</category> <pubDate>Thu, 27 Aug 2009 21:25:48 GMT</pubDate> </item> <item> <title>Roadside Assistance Safety Kit</title> <link>http://www.thinkgeek.com/bf5e/?cpg=clrss</link> <guid>http://www.thinkgeek.com/bf5e/</guid> <description>&lt;img src="http://www.thinkgeek.com/images/products/thumb/large/bf5e_roadside_assistance_safety_kit.jpg" width="95" height="130" border="0" align="right"&gt; Roadside Assistance Safety Kit &lt;p&gt;Price: &lt;b&gt;$17.99&lt;/b&gt;&lt;/p&gt;</description> <category>Clearance</category> <pubDate>Thu, 27 Aug 2009 21:22:23 GMT</pubDate> </item></channel>

Listagem 4. Produtos comercializados pela loja.

List<SyndEntryImpl> feeds = fullFeed.getEntries();for (SyndEntryImpl feed : feeds) { ProdutoVO produto = new ProdutoVO(feed.getUri(), feed.getTitle(), feed.getDescription().getValue()); loja.setProduto(produto);}

Listagem 5. Leitura dos produtos.

LOJA AdWords API Mundoj48 produtos EM ESTOQUE52 produtos VENDIDOS Loja funcionando...Produtos são comprados e vendidos LOJA AdWords API Mundoj23 produtos EM ESTOQUE77 produtos VENDIDOS

Page 7: Gerenciando e Otimizando Campanhas de ... - univale.com.br · 58 Aumente a audiência do seu site com a poderosa API de publicidade do Google ... AdService Anúncios . com/api/adwords/v13

6464 www.mundoj.com.br

Toda vez que a loja entra em funcionamento, acontece o sorteio que determina se um produto foi comprado ou vendido. Se um produto foi vendido, este produto sai do estoque e vai para a condição de vendido. Caso contrário, se um produto foi comprado, este produto sai da condição de vendido e entra para o estoque.

Quando a loja anuncia no AdWords, o comportamento é composto de três etapas. A primeira é a chamada ao método getClientsAc-counts da AccountInterface, o que garante que o Google criará caso ainda não tenha criado cinco contas de clientes fictícios para testes na sandbox. Para esta aplicação, utilizamos apenas um cliente. As etapas seguintes são responsáveis pela obtenção e criação, caso ainda não existam, do anúncio de texto, do grupo de anúncio e da campanha do cliente. Por fim, as palavras-chave são ativadas e de-sativadas (pause true/false) de acordo com os produtos em estoque, no momento. A Listagem 7 apresenta o trecho de código executado toda vez que a loja anuncia seus produtos no Google AdWords e a Listagem 8 mostra o código Java para obtenção dos grupos de anúncio da campanha do cliente.

do acontece a oscilação aleatória do estoque com produtos sendo vendidos e recomprados para reposição de estoque; seguido pela reapresentação da situação do estoque e então a atualização auto-mática da campanha de links patrocinados do Google AdWords, de acordo com o estoque.

A aplicação contém uma package criada através do Apache Axis, para a comunicação com os WebServices do AdWords, e mais quatro packages específicas. O package business contém o código respon-sável pela implementação das regras de negócio, como o compor-tamento aleatório da venda e compra de produtos da loja, e da criação de campanha, grupo de anúncio, anúncio e palavras-chave no AdWords. O package dao contém as classes que fazem a ligação entre as classes do package business e as classes do package da API do AdWords. O package vo contém as classes que representam Loja e Produto, conforme Listagem 6. E por último a package útil contém classes utilitárias para parse de XML, log da aplicação, leitor de properties e criação do cabeçalho (header) da comunicação SOAP exigido pela API do AdWords.

public class LojaVO {

private String nome;

private List<ProdutoVO> emEstoque;

private List<ProdutoVO> vendidos;

...

}

public class ProdutoVO {

private String guid;

private String titulo;

private String descricao;

...

}

public void anuncia() throws InvalidGoogleAdWordsAPIException {

//cria clientes no sandbox Google caso não existam

new Cliente().getClientes();

try {

this.clientEmail = Properties.getProperty("clientEmail");

} catch (IOException e) {

throw new InvalidGoogleAdWordsAPIException(e.getMessage(), e);

}

//recupera campanhas do cliente

Campanha campanha = new Campanha(clientEmail);

for (Campaign campaign : campanha.getCampaigns()) {

campanha.report(campaign);

//recupera grupos de anúncios da campanha

GrupoAnuncio grupoAnuncio = new GrupoAnuncio(campaign.getId(),

clientEmail);

for (AdGroup adGroup : grupoAnuncio.getAdGroups()) {

grupoAnuncio.report(adGroup);

//recupera anúncios do grupo de anúncio

AnuncioTexto anuncioTexto = new AnuncioTexto(adGroup.getId(),

clientEmail);

for (Ad ad : anuncioTexto.getAds()) {

anuncioTexto.report(ad);

}

//atualizar palavras-chave do grupo de anúncio

Logger.getLogger().info("

\nAtualizando palavras-chave do GOOGLE ADWORDS...");

PalavraChave palavraChave = new PalavraChave(adGroup.getId(),

clientEmail);

palavraChave.resetCriteria();

palavraChave.setKeywords(loja.getEmEstoque(), false);

palavraChave.setKeywords(loja.getVendidos(), true);

}

}

}

Listagem 6. Classes para Produto e Loja.

Listagem 7. Loja anunciando produtos no Google AdWords.

Page 8: Gerenciando e Otimizando Campanhas de ... - univale.com.br · 58 Aumente a audiência do seu site com a poderosa API de publicidade do Google ... AdService Anúncios . com/api/adwords/v13

6565

O volume de informações sobre o AdWords disponibilizado na própria Internet é enorme. No final deste artigo, você encontra uma lista dos principais sites, caso você tenha interesse em se aprofundar no assunto.

O Google AdWords também movimenta o mundo dos negócios e gera empregos. Atualmente existem muitas empresas especializadas no gerenciamento e otimização de campanhas de links patrocinados do Google AdWords. Para garantir que o anunciante esteja sendo atendido por profissionais que realmente entendem do assunto, o Google criou o exame para certificação Google AdWords, que assegura a qualidade dos serviços prestados. O programa Google AdWords Professionals também oferece créditos promocionais, para serem utilizados em novas cam-panhas no AdWords, como bonificação para profissionais e empresas certificados.

Versões da AdWords API

Considerações finais

O Google AdWords está em constante evolução. Por isso, a API também evolui. A equipe técnica responsável pela API trabalha constantemente na evolução da API garantindo que todas as funcionalidades do AdWords estejam também disponíveis na API. A versão apresentada neste artigo é a v13 da API. A v13 é a versão estável em produção e traz a garantia de ótimo funcionamento.

Uma nova versão da API, batizada de v2009, está sendo desenvolvida pelo Google atualmente e promete novas funcionalidades, mais rapidez e um custo menor. A nova API v2009 não oferece compatibilidade com a v13, já que é uma reestruturação da API, expõe novos Web Services e traz um mecanismo diferente de utilização.

A versão v200906 ainda encontra-se em beta e por isso este artigo focou-se na versão v13. A tabela 2 apresenta uma visão macro entre as diferenças entre os Web Services das versões v13 e v2009. A lista de referências deste artigo o site para informações detalhadas sobre a nova versão v2009.

Versão v13 Versão v2009

CampaignService CampaignService

part of CriterionService CampaignCriterionService

part of CampaignService CampaignTargetService

AdGroupService AdGroupService

AdService AdGroupAdService

CriterionService AdGroupCriterionService

O objetivo deste artigo foi apresentar um exemplo simples de utiliza-ção da Google AdWords API. Como já dito, a API disponibiliza todas as funcionalidades que já existem na interface web do sistema; portanto qualquer atividade feita pela interface web pode ser migrada para um software customizado e integrado ao AdWords através da API. O intuito é garantir o funcionamento 24 horas por dia sem interrupções e sem erros, economizar tempo e aumentar a lucratividade dos investimentos em publicidade on-line; aliás, é isso o que todas as empresas buscam para crescerem e continuarem fortes em seus mercados, não é mesmo?

Referências

O livro e os sites citados a seguir fazem parte da rotina de acompanhamento permanente

sobre publicidade no Google e foram utilizados para a criação deste artigo.

html

-

docs/

private void initAdGroupService() throws InvalidGoogleAdWordsAPIException { try { adGroupService = new AdGroupServiceLocator().getAdGroupService(); RemoteService.getService(adGroupService, clientEmail); } catch (ServiceException e) { throw new InvalidGoogleAdWordsAPIException( InvalidGoogleAdWordsAPIException.SERVICE_EXCEPTION_MSG, e); } catch (IOException e) { throw new InvalidGoogleAdWordsAPIException(e.getMessage(), e); }}

public AdGroup[] getAdGroups() throws InvalidGoogleAdWordsAPIException { if (campaignId <= 0) return null; try { if (this.adGroupService==null) { this.initAdGroupService(); } adGroups = adGroupService.getActiveAdGroups(campaignId); } catch (ApiException e) { throw new InvalidGoogleAdWordsAPIException( InvalidGoogleAdWordsAPIException.API_EXCEPTION_MSG, e); } catch (RemoteException e) { throw new InvalidGoogleAdWordsAPIException( InvalidGoogleAdWordsAPIException.REMOTE_EXCEPTION_MSG, e); } if (adGroups == null) { Logger.getLogger().info("\nGrupos de Anúncios inexistentes"); } return adGroups;}

Listagem 8. Obtenção dos grupos de anúncios de uma campanha do AdWords