A segmentação, disponível na interface do Google Ads como um menu separado, pode ser
implementados na API Google Ads adicionando o campo correto a uma consulta. Para
exemplo, adicionar segments.device
a um
resulta em um relatório com uma linha para cada combinação de dispositivo e o
recurso especificado na cláusula FROM
, e o
valores estatísticos (impressões, cliques, conversões etc.) divididos entre eles.
Na interface do Google Ads, apenas um segmento por vez pode ser usado, com a API, é possível especificar vários segmentos na mesma consulta.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Os resultados do envio dessa consulta
GoogleAdsService.SearchStream
ficaria mais ou menos com esta string JSON:
{
"results":[
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"10922"
},
"segments":{
"device":"MOBILE"
}
},
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"28297"
},
"segments":{
"device":"DESKTOP"
}
},
...
]
}
No resultado do exemplo acima, os atributos para a primeira e a segunda incluindo o nome do recurso, são os mesmos. As impressões são segmentadas por device e, assim, dois ou mais objetos podem ser retornados para a mesma campanha.
Segmentação implícita
Cada relatório é segmentado inicialmente pelo recurso especificado no FROM
. O campo resource_name do recurso na cláusula FROM
é
retornados e as métricas são segmentadas por ele, mesmo quando o campo resource_name for
explicitamente incluídos na consulta. Por exemplo, quando você especifica
ad_group
como o recurso na cláusula FROM
, em seguida,
ad_group.resource_name
vai
automaticamente retornado, e as métricas segmentarão implicitamente em relação a ele no
nível "ad_group".
Então, para esta consulta,
SELECT metrics.impressions
FROM ad_group
você receberia uma string JSON como esta:
{
"results":[
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/2222222222"
},
"metrics":{
"impressions":"237"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/33333333333"
},
"metrics":{
"impressions":"15"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/44444444444"
},
"metrics":{
"impressions":"0"
}
}
]
}
O campo resource_name
de adGroup
é sempre retornado porque
ad_group
foi especificado como um recurso na cláusula FROM
.
Campos de segmento selecionáveis
Nem todos os campos de segmento são selecionáveis para um determinado recurso na cláusula FROM
.
Por exemplo, vamos continuar consultando no ad_group
recurso. Para que um campo de segmento possa ser selecionado no recurso ad_group,
Esse campo precisa existir na lista Segments
de ad_group. O Segments
é a parte amarela da tabela de campos disponíveis no
página de metadados do recurso ad_group
.
Segmentar recursos
Ao selecionar alguns recursos, você pode ter a opção de mesclar implicitamente
em recursos relacionados selecionando seus campos junto com os campos da
recurso na cláusula FROM
. Esses recursos relacionados podem ser encontrados na
Lista Attributed Resources
no recurso nos metadados da cláusula FROM
página. No caso do recurso ad_group
, você vai encontrar
que também é possível selecionar campos do campaign
recurso. O campo resource_name de qualquer Attributed Resources
com pelo menos
um campo na cláusula SELECT
será retornado automaticamente, mesmo quando o
O campo resource_name não está explicitamente incluído na consulta.
Assim como na seleção de campos Attributed Resource
, também é possível selecionar
Segmenting Resource
. Se um determinado recurso tiver um Segmenting Resources
na página de metadados dele e, em seguida, selecionar campos de um desses recursos listados
fará com que a consulta seja ainda mais segmentada pelo resource_name retornado dessa
Segmenting Resource
. Como exemplo, você descobrirá que o
O recurso campaign
está listado como um Segmenting Resource
para o recurso campaign_budget
. Selecionando qualquer um
campo de campanha, como campaign.name
, de
o recurso campaign_budget fará com que o campo campaign.name não seja
retornado, mas fará com que
campaign.resource_name
a ser
retornados e segmentados.
Capacidade de seleção entre segmentos e métricas
Um determinado campo de segmento pode não ser compatível com alguns dos outros segmentos
campos ou com alguns dos campos de métricas. Para identificar quais campos de segmento
compatíveis entre si, consulte a lista de selectable_with
dos segmentos na cláusula SELECT
.
No caso do
ad_group
, há mais de 50 segmentos disponíveis que
que você pode selecionar. No entanto, a lista selectable_with
para
segments.hotel_check_in_date
é um conjunto muito menor de segmentos compatíveis. Isso significa que, se você adicionar
segments.hotel_check_in_date
na cláusula SELECT
, você limitará
os segmentos disponíveis que você resta para selecionar na interseção desses dois
listas.
- Ao adicionar alguns segmentos, as métricas na linha de resumo podem diminuir
- Quando
segments.keyword.info.match_type
é adicionado a uma consulta comFROM ad_group_ad
, esse segmento está instruindo a consulta a recuperar apenas as linhas de dados que contenham palavras-chave e remover as linhas que não estejam associadas a um palavra-chave. Nesse caso, as métricas seriam menores porque excluiriam qualquer métricas diferentes de palavras-chave.
Regras para segmentos na cláusula WHERE
Quando um segmento está na cláusula WHERE
, ele também precisa estar em SELECT
.
. A exceção a essa regra são os seguintes segmentos de data, que são
Chamados de segmentos de data principal:
segments.date
segments.week
segments.month
segments.quarter
segments.year
Regras para campos de segmento de data principal
Os segmentos segments.date
, segments.week
, segments.month
,
segments.quarter
e segments.year
funcionam da seguinte maneira:
Esses segmentos podem ser filtrados na cláusula
WHERE
sem aparecer na cláusulaSELECT
.Se algum desses segmentos estiver na cláusula
SELECT
, um período finito composto por segmentos de data essenciais deve ser especificado na cláusulaWHERE
(os segmentos de data não precisam ser os mesmos especificados noSELECT
).
Exemplos
Inválido:como segments.date é
na cláusula SELECT , você precisa especificar um período finito em
a cláusula WHERE para uma segments.date ;
segments.week , segments.month ,
segments.quarter ou segments.year .
|
SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
Válido:esta consulta retorna nomes de campanhas e
cliques acumulados durante o período. Observe que segments.date
não precisa aparecer na cláusula SELECT .
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Válido:esta consulta retorna nomes de campanhas e cliques segmentados por data para todos os dias do período. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Válido:esta consulta retorna nomes de campanhas e cliques segmentados por mês para todos os dias do período. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Válido:esta consulta retorna nomes de campanhas e cliques segmentados por trimestre e depois por mês para todos os meses do período. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2015 AND segments.year < 2020 |
search_term_view
Para o
search_term_view
, também
implicitamente segmentados por grupo de anúncios, não apenas por um termo de pesquisa, conforme refletido pelo
estrutura do recurso
nome, que
também inclui um grupo de anúncios. Assim, você terá algumas visualizações duplicadas
linhas com os mesmos termos de pesquisa que aparecem em seus resultados quando, na verdade,
as linhas pertenceriam a um grupo de anúncios diferente:
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2015-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2015-06-15"
}
}
]
}
Embora os dois objetos retornados neste exemplo pareçam ser duplicados,
os nomes dos recursos são diferentes, especialmente no "grupo de anúncios"
parte. Isso significa que o termo de pesquisa "google fotos" é atribuída aos dois
grupos de anúncios (ID 2222222222
e 33333333333
) na mesma data (15/06/2015).
Assim, podemos concluir que a API funcionou como pretendido e não retornou um retorno
objetos duplicados nesse caso.