Segmentación

La segmentación, disponible en la IU de Google Ads como un menú independiente, se puede implementar en la API de Google Ads con solo agregar el campo adecuado a una consulta. Para Por ejemplo, agregar segments.device a una consulta, genera un informe con una fila para cada combinación de dispositivo y el recurso especificado en la cláusula FROM y la valores estadísticos (impresiones, clics, conversiones, etc.) divididos entre ellos.

Si bien en la IU de Google Ads solo se puede utilizar un segmento a la vez, en la API, puede especificar varios segmentos en la misma consulta.

SELECT
  campaign.name,
  campaign.status,
  segments.device,
  metrics.impressions
FROM campaign

Los resultados de enviar esta consulta a GoogleAdsService.SearchStream se vería algo como esta cadena 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"
      }
    },
    ...
  ]
}

Ten en cuenta que, en el resultado del ejemplo anterior, los atributos para la primera y la segunda incluidos el nombre del recurso son iguales. Las impresiones están segmentadas. por dispositivo y, por lo tanto, se pueden mostrar dos o más objetos para la misma campaña.

Segmentación implícita

Inicialmente, cada informe se segmenta según el recurso especificado en el archivo FROM. . El campo resource_name del recurso en la cláusula FROM es que se devuelven y las métricas se segmentan por él, incluso cuando el campo resource_name no se incluye explícitamente en la consulta. Por ejemplo, cuando especificas ad_group como el recurso en la cláusula FROM y, luego, ad_group.resource_name hará lo siguiente y las métricas se segmentarán implícitamente en función de este en el a nivel del grupo de anuncios.

Entonces, para esta consulta,

SELECT metrics.impressions
FROM ad_group

obtendrías una cadena 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"
      }
    }
  ]
}

Ten en cuenta que el campo resource_name de adGroup siempre se muestra porque Se especificó ad_group como recurso en la cláusula FROM.

Campos de segmentos seleccionables

No todos los campos de segmento se pueden seleccionar para un recurso determinado en la cláusula FROM. A modo de ejemplo, seguiremos consultando desde ad_group. recurso. Para que un campo del segmento se pueda seleccionar desde el recurso ad_group, Ese campo debe existir en la lista Segments de ad_group. El Segments es la parte amarilla de la tabla de campos disponibles en la Página de metadatos del recurso ad_group.

Recursos del segmento

Cuando selecciones entre algunos recursos, tal vez tengas la opción de unir elementos de forma implícita en recursos relacionados seleccionando sus campos junto a los campos de las recurso en la cláusula FROM. Estos recursos relacionados pueden encontrarse en Lista Attributed Resources en el recurso en los metadatos de la cláusula FROM . En el caso del recurso ad_group, verás que también puedes seleccionar campos de la campaign recurso. El campo resource_name de cualquier Attributed Resources con al menos 1 en la cláusula SELECT se mostrará automáticamente, incluso cuando la resource_name no se incluye explícitamente en la consulta.

Al igual que cuando seleccionas campos de Attributed Resource, también puedes seleccionar Segmenting Resource campos. Si un recurso determinado tiene un Segmenting Resources lista en su página de metadatos y, a continuación, selecciona campos de uno de los recursos enumerados hará que la consulta se segmente aún más por el resource_name devuelto de ese Segmenting Resource Por ejemplo, descubrirás que la El recurso campaign aparece como Segmenting Resource. para el recurso campaign_budget. Seleccionar cualquiera campo de la campaña, como campaign.name, de el recurso campaign_budget no solo hará que el campo campaign.name se pero causará que la luz campo campaign.resource_name que se debe que se muestran y se segmentan.

Posibilidad de seleccionar entre segmentos y métricas

Es posible que un campo de segmento determinado no sea compatible con algunos de los otros segmentos o con algunos campos de métricas. Para identificar qué campos de segmentos son compatibles entre sí, puedes revisar la lista de selectable_with de los segmentos en la cláusula SELECT.

En el caso de los ad_group, hay más de 50 segmentos disponibles que que puedes seleccionar. Sin embargo, la lista selectable_with de segments.hotel_check_in_date es un conjunto mucho más pequeño de segmentos compatibles. Esto significa que, si agregas segments.hotel_check_in_date en la cláusula SELECT, limitarás los tramos disponibles que te quedan para seleccionar hasta la intersección de estos dos. listas.

Si agrega algunos segmentos, es posible que disminuyan las métricas de la fila de resumen.
Cuando segments.keyword.info.match_type se agrega a una consulta con FROM ad_group_ad, ese segmento le indica a la consulta que solo obtenga las filas de datos que contengan palabras clave y quitará cualquier fila que no esté asociada con un palabra clave. En este caso, las métricas serían menores porque excluiría cualquier métricas que no son de palabras clave.

Reglas para segmentos en la cláusula WHERE

Cuando un segmento está en la cláusula WHERE, también debe estar en SELECT . La excepción a esta regla son los siguientes segmentos de fechas, que se denominados segmentos de fechas principales:

  • segments.date
  • segments.week
  • segments.month
  • segments.quarter
  • segments.year

Reglas para los campos de segmento de fechas principales

Los segmentos segments.date, segments.week, segments.month, segments.quarter y segments.year funcionan de la siguiente manera:

  • Estos segmentos se pueden filtrar en la cláusula WHERE sin aparecer. en la cláusula SELECT.

  • Si alguno de estos segmentos está en la cláusula SELECT, un período finito compuestos por segmentos de fechas principales se deben especificar en la cláusula WHERE (no es necesario que los segmentos de fechas sean los mismos que se especifican en el SELECT).

Ejemplos

No válido: Debido a que segments.date es en la cláusula SELECT, debes especificar un período finito en la cláusula WHERE para un segments.date, segments.week, segments.month segments.quarter o segments.year.
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
Válida: Esta consulta devuelve nombres de campañas y clics acumulados durante el período. Ten en cuenta que segments.date no es necesario que aparezca en la cláusula SELECT.
SELECT
  campaign.name,
  metrics.clicks
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
Válida: Esta consulta devuelve nombres de campañas y los clics segmentados por fecha para todos los días del período.
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
Válida: Esta consulta devuelve nombres de campañas y los clics segmentados por mes para todos los días del período.
SELECT
  campaign.name,
  metrics.clicks,
  segments.month
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
Válida: Esta consulta devuelve nombres de campañas y los clics segmentados por trimestre y, luego, por mes para todos los meses del rango de año.
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year > 2015
  AND segments.year < 2020

search_term_view

Ten en cuenta que search_term_view, también es segmentada implícitamente por grupo de anuncios, no solo por término de búsqueda, como lo refleja el de sus recursos personalizado, que también incluye el grupo de anuncios. Por lo tanto, obtendrás una copia filas con los mismos términos de búsqueda que aparecen en los resultados cuando son Las filas pertenecerán a un grupo de anuncios 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"
      }
    }
  ]
}

Aunque los dos objetos devueltos en este ejemplo parecen estar duplicados, sus nombres de recursos son realmente diferentes, especialmente en el caso del "grupo de anuncios" de una parte del proyecto. Esto significa que el término de búsqueda "google fotos" se atribuye a ambos grupos de anuncios (ID 2222222222 y 33333333333) en la misma fecha (15 de junio de 2015). Por lo tanto, podemos concluir que la API funcionó según lo previsto y no devolvió los objetos duplicados.