La API de Google Ads tiene una recuperación de atributos y un mecanismo de informes de métricas unificado que te permite crear consultas con el lenguaje de consulta de Google Ads. Esto permite realizar consultas complejas que pueden mostrar grandes cantidades de datos sobre cuentas individuales de Google Ads.
Puedes crear consultas con los métodos Search
o SearchStream
.
Ambos métodos admiten las mismas consultas y devuelven resultados equivalentes. El método Search
muestra datos en tamaños de página personalizables, lo que te permite iterar en un conjunto de resultados mediante la paginación. Esto podría ser beneficioso en un ancho de banda bajo o en condiciones de red poco confiables, por ejemplo, para segmentar un conjunto de resultados grande en respuestas más pequeñas que se puedan volver a recuperar si se pierde la conexión. Por otro lado, el método SearchStream
transmite todo el conjunto de resultados en una sola respuesta, que puede ser más eficiente para la recuperación masiva de datos.
Tanto Search
como SearchStream
usan la misma URL base:
https://googleads.googleapis.com/v16/customers/CUSTOMER_ID/googleAds
El método de búsqueda basada en páginas incluye un parámetro pageSize
opcional que limita la cantidad de resultados que se muestran en una sola respuesta de la API.
POST /v16/customers/CUSTOMER_ID/googleAds:search HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "pageSize": 10000, "query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'" }
Si en los resultados hay más filas que pageSize
, se muestra una nextPageToken
en la respuesta:
{ "results": [ // ... // ... // ... ], "nextPageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B", "fieldMask": "adGroupCriterion.keyword.text,adGroupCriterion.status" }
Si repites la misma consulta con un pageToken
agregado con el valor anterior, se obtendrá la siguiente página de resultados:
POST /v16/customers/CUSTOMER_ID/googleAds:search HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "pageSize": 10000, "query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'", "pageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B" }
Para usar el método SearchStream
, que muestra todos los resultados en una sola respuesta transmitida, simplemente cambia el método de servicio en la URL a searchStream
(SearchStream
no requiere pageSize
ni pageToken
):
POST /v16/customers/CUSTOMER_ID/googleAds:searchStream HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'" }