2. AdWords API Features Update
O que há de novo, graduados de beta, e outros
Marc Wandschneider, Google Inc.
+GustavoMenezes, Google, Inc.
AdWords API Workshops – All rights reserved
3. Highlights da Última Entrega
● Funcionalidades novas
○ Offline conversions import & tracking
○ Novos relatórios e campos
○ Mudanças em budget compartilhado
AdWords API Workshops – All rights reserved
4. Highlights da Última Entrega (cont.)
● Outras mudanças:
○ Nomes obrigatórios em Campanhas e AdGroups
○ Não é mais possível acionar search network em
NetworkSetting
○ Objetos de Stats não estão mais disponíveis nos serviços
AdWords API Workshops – All rights reserved
5. Highlights da Última Entrega (cont.)
● Cinco funcionalidades sairam de beta
○ Display criteria bid modifiers
○ Dynamic Search Ads
○ AdGroup level feeds (site links)
○ Flexible bidding strategies
○ Location bid modifiers
AdWords API Workshops – All rights reserved
7. Offline Conversion Import
● Permite registrar conversões manualmente
● Pode ter sido gerada manualmente
● Pode ter sido criada por seu rastreador
● Você tem 90 dias para registrar a conversão
● Conversões são úteis para
● Bidding flexível
● Relatórios de conversão
AdWords API Workshops – All rights reserved
8. Offline Conversion Import (cont.)
● Procedimento básico
a. Ligue auto-tagging em suas campanhas (GCLID)
b. Guarde o GCLID em sua base
c. Quando convertido, registre em sua base
d. Faça o upload para o AdWords regularmente
AdWords API Workshops – All rights reserved
9. Offline Conversion Import (cont.)
● Para subir uma conversão, dois passos:
a. Crie um Import Conversion Type
■ usando ConversionTrackerService
b. Suba a conversão para com o tipo
AdWords API Workshops – All rights reserved
10. Criando Import Conversion Type (Código)
UploadConversion uc = new UploadConversion();
uc.setCategory(ConversionTrackerCategory.SIGNUP);
uc.setName("Freemium signup");
uc.setViewthroughLookbackWindow(30);
uc.setCtcLookbackWindow(90);
ConversionTrackerService.mutate(ADD, uc);
// NOTE: wait 6 hours after creating before uploading.
AdWords API Workshops – All rights reserved
11. Suba a Conversão
OfflineConversionFeed feed = new OfflineConversionFeed();
feed.setConversionName("Freemium signup");
feed.setConversionTime(conversionTime);
feed.setGoogleClickId(gClid);
feed.setConversionValue(3.50);
// optional, > 0
OfflineConversionFeedService.mutate(ADD, feed);
// conversion can take up to 3 hours to be processed fully
AdWords API Workshops – All rights reserved
13. Nomes em Campanhas e AdGroups
● Agora é obrigatório
● O trabalho de garantir unicidade
é seu!
● Se não adicionado, ERRO!
● (só isso...)
AdWords API Workshops – All rights reserved
14. NetworkSetting e Search
● Campanhas de Display only evoluiram com o tempo
● Não é mais possível mudar NetworkSetting para Search
● TargetError.TARGET_ERROR
● Ainda podem virar rede de display
● Só afeta mudanças no NetworkSetting de
campanhas já existentes
AdWords API Workshops – All rights reserved
15. Objetos Stats se Foram...
● Muitos serviços (7) tinham Stats
● i.e. AdGroupService ,CampaignService, MutateJobService
● Não mais, vão retornar um erro
● Use os relatórios para recuperar os stats
● API de relatórios é muito fácil de usar
● Você já deveria estar usando!
AdWords API Workshops – All rights reserved
16. Budgets Individuais de Campanhas
Voltaram
● Desde v201309, é possível criar budgets ‘individuais’
(não-compartilhados)
● Na v201302, um campo foi adicionado em Budget para
suportar: isExplicitlyShared
● O valor em isExplicitlyShared agora tem efeito
● Set isExplicitlyShared = false para criar um
budget individual
● Valor padrão: isExplicitlyShared = true
AdWords API Workshops – All rights reserved
17. Para Que Criar Budgets Individuais?
● Não aparecem no AdWords UI ‘Shared Library’
● Só podem ser compartilhados se alterar
isExplicitlyShared = true
● Budgets compartilhados não podem ser convertidos para
individuais
● Budgets individuais são apagados automaticamente
quando se apaga a Campanha
○ BudgetService.mutate(REMOVE op) (não necessário)
AdWords API Workshops – All rights reserved
18. Para Que Criar Budgets Individuais?
● Campanhas usando Budget Optimizer ou Campaign
Experiments não podem compartilhar budgets
● Budgets individuais garantem esse comportamento
AdWords API Workshops – All rights reserved
20. 1. Display Criteria Bid Modifiers
●
BiddableAdGroupCriterion.bidModifier
!!
● Modificar bids de alguns segmento na rede de display
● Pode modificar para audiencias exclusivas
● RLSAs também!
● Não funciona para palavras-chave em outros critérios
AdWords API Workshops – All rights reserved
21. 2. Dynamic Search Ads
● Ads que são servidos baseados no conteúdo do site
● Não precisam de headline, destination URL, ou keywords
● Apenas descrições, display URL
● Mesmo ranking — performa como outros Ads
● Funcionam dentro de campanhas com keywords
● Ainda permitem negative keywords, relatórios,
extensions
AdWords API Workshops – All rights reserved
22. Dynamic Search Ads (cont.)
● Crie Campaigns e AdGroups como antes
● Fique a vontade para adicionar keyword criteria
● Para DSAs, 3 coisas são necessárias:
● DomainInfoExtension
● Uma ou mais webpage Criteria
● DynamicSearchAds
AdWords API Workshops – All rights reserved
23. Dynamic Search Ads (cont.)
●
●
●
●
Crie um Ad do tipo DynamicSearchAd
Preencha description1, description2, displayUrl
Uma dica: a url precisa ser parametrizada
Todas as operações de CRUD são suportadas
AdWords API Workshops – All rights reserved
24. Dynamic Search Ads (cont.)
● url, se provida, precisa de parâmetros
● Um dos seguinte:
● {unescapedlpurl} — Usado no começo, substitui toda URL
● {unescapedlpurl}?lang=en
● {escapedlpurl} — UR- encoded version, i.e. para os trackers
● http://www.3rdpartytracker.com/?lp={escapedlpurl}
● {lpurlpath} — Apenas a parte the query da URL
● http://www.mygoodbusiness.com/tracking/{lpurlpath}
●
Caso não haja url, {unescapedlpurl} será usado
AdWords API Workshops – All rights reserved
25. Dynamic Search Ads (cont.)
DynamicSearchAd dsa = new DynamicSearchAd();
dsa.url = "{unescapedlpurl}?source=dsa";
dsa.displayUrl = "amazingcarrepairs.com";
dsa.description1 = "We'll take good care of your car";
dsa.description2 = "Wash and wax service included.";
AdGroupAd aga = new AdGroupAd(_adgroupid);
aga.ad = dsa;
AdGroupService.mutate(ADD, aga);
AdWords API Workshops – All rights reserved
26. Dynamic Search Ads (cont’d)
● Adicione uma criteria de Webpage
● Pode ser por título, conteúdo, URL, etc.
● Pode ser negativa também
● Não sirva nestas páginas...
AdWords API Workshops – All rights reserved
27. Dynamic Search Ads (cont.)
WebpageCondition cond = new WebpageCondition();
cond.operand = URL; // filter on URLs, equal to "CONTAINS"
cond.argument = "/grandcherokee";
WebpageParameter param = new WebpageParameter();
param.criterionName = "Jeep Grand Cherokee";
param.conditions = [ cond ];
Webpage wp = new Webpage(); // the criterion
wp.parameter = param;
// can now put in AdGroupCriterion object and ADD!
AdWords API Workshops – All rights reserved
28. Dynamic Search Ads (cont.)
● Caveat:
● DSAs dependem de DomainInfoExtension
●
São Ad Extensions de Campanha
● NÃO são criáveis pela API
●
Use a interface
● DSAs pode usar DomainInfoExtension existentes
AdWords API Workshops – All rights reserved
29. 3. AdGroup Level Feeds
● Pode usar AdGroupFeedService
● Adicione sitelinks em AdGroups
● (só isso… também...)
AdWords API Workshops – All rights reserved
30. 4. Flexible Bidding Strategies
● Atualmente estratégias de bid são por campanhas
● Crie um objeto novo, e passa pra campanha
● Seria legal ter uma reserva de estratégias
● Usar a mesma configuração em diferentes campanhas
● Mudar de estratégia de acordo com situação
● Flexible Bidding Strategies vão salvar o dia!
● Flexible ~= “Compartilhado”
AdWords API Workshops – All rights reserved
33. Flexible Bidding Strategies (cont.)
● BiddingStrategyService é a reserva
● Crie um SharedBiddingStrategy
● Contém biddingScheme como antes
●
I.e. TargetSpendBiddingScheme
● Em Campaign.biddingStrategyConfiguration
● Use o ID do objeto que você criou
AdWords API Workshops – All rights reserved
34. Flexible Bidding Strategies (cont.)
// 1. create the shared bidding
TargetSpendBiddingScheme tsbs =
tsbs.spendTarget = 250000000;
tsbs.bidCeiling = 2500000;
strategy.
new TargetSpendBiddingScheme();
// $250 a month
// max 2.50$ bid
SharedBiddingStrategy sbs = new SharedBiddingStrategy();
sbs.name = "Monthly targeted spend";
sbs.type = TARGET_SPEND;
sbs.biddingScheme = tsbs;
BiddingStrategyService.mutate(ADD, sbs); // extract result
AdWords API Workshops – All rights reserved
35. Flexible Bidding Strategies (cont.)
// 2. add it to the campaign.
Campaign c = new Campaign();
// set up stuff on c
BiddingStrategyConfiguration bsc = new
BiddingStrategyConfiguration();
bsc.biddingStrategyId = sbs.id;
c.biddingStrategyConfiguration = bsc;
CampaignService.mutate(ADD, c);
AdWords API Workshops – All rights reserved
36. 5. Location Bid Modifiers
● Bids diferentes para lugares
diferentes
● Tudo na mesma campanha
AdWords API Workshops – All rights reserved
37. Location Bid Modifiers (cont.)
// 1. normal location criterion.
LocationCriterion lc = new Location();
lc.id = 1002451; // Toronto, Ontario, Canada
lc.bidModifier = 1.0;
CampaignCriterion cc = new CampaignCriterion();
cc.campaignId = _campaignId;
cc.criterion = lc;
CampaignCriterionService.mutate(ADD, cc);
AdWords API Workshops – All rights reserved
38. Location Bid Modifiers (cont.)
// 2. let's bid more for successful suburb
LocationCriterion lc = new Location();
lc.id = 1002350;
// Mississauga, Ont, Can
lc.bidModifier = 1.5;
// bid 50% more for here
CampaignCriterion cc = new CampaignCriterion();
cc.campaignId = _campaignId;
cc.criterion = lc;
CampaignCriterionService.mutate(ADD, cc);
AdWords API Workshops – All rights reserved
40. Alguma Funcionalidades Esquecidas
● Palavras-chave negativas
● Site Links (agora via Feed Services)
● Ajuda com QS, CTR
● Um jeito simples de melhorar seu negócio
AdWords API Workshops – All rights reserved
41. Negative Keywords
// Create keyword. We're creating ads for “Westminster dentist”.
Keyword keyword = new Keyword();
keyword.setText("reviews");
keyword.setMatchType(KeywordMatchType.BROAD);
// Create negative campaign criterion.
NegativeCampaignCriterion ncc = new NegativeCampaignCriterion();
ncc.setCampaignId(_campaignId);
ncc.setCriterion(keyword);
CampaignCriterionService.mutate(ADD, ncc);
AdWords API Workshops – All rights reserved
42. Site Links
● Agora parte de Feed Services
AdWords API Workshops – All rights reserved
43. Links
Google Ads v201309 Blog Post - http://goo.gl/TvNQDx
v201309 Migration Guide - http://goo.gl/e4O7YZ
AdWords API Workshops – All rights reserved