Estructura de llamadas a la API

En esta guía, se describe la estructura común de todas las llamadas a la API.

Si usas una biblioteca cliente para interactuar con la API, no necesitarás conocer los detalles de la solicitud subyacente. Sin embargo, tener algunos conocimientos sobre la estructura de las llamadas a la API puede ser útil cuando se realizan pruebas y se depura el código.

La API de Google Ads es una API de gRPC con vinculaciones de REST. Esto significa que hay dos formas de realizar llamadas a la API.

Opción preferida:

  1. Crea el cuerpo de la solicitud como un búfer de protocolo.
  2. Envíalo al servidor con HTTP/2.
  3. Deserializa la respuesta a un búfer de protocolo.
  4. Interpreta los resultados.

La mayor parte de nuestra documentación describe el uso de gRPC.

Opcional:

  1. Crea el cuerpo de la solicitud como un objeto JSON.
  2. Envíalo al servidor con HTTP 1.1.
  3. Deserializa la respuesta como un objeto JSON.
  4. Interpreta los resultados.

Consulta la guía de la interfaz de REST para obtener más información sobre el uso de REST.

Nombres de recursos

La mayoría de los objetos de la API se identifican con sus cadenas de nombres de recursos. Estas cadenas también funcionan como URLs cuando se usa la interfaz de REST. Consulta los nombres de recursos de la interfaz de REST para conocer su estructura.

IDs compuestos

Si el ID de un objeto no es único a nivel global, se construye un ID compuesto para ese objeto anteponiendo su ID superior y una tilde (~).

Por ejemplo, como el ID de anuncio de un grupo de anuncios no es único a nivel global, le anteponemos el ID de su objeto superior (grupo de anuncios) para crear un ID compuesto único:

  • AdGroupId de 123 + ~ + AdGroupAdId de 45678 = ID de anuncio compuesto de grupo de anuncios de 123~45678.

Encabezados de la solicitud

Estos son los encabezados HTTP (o metadatos de gRPC) que acompañan al cuerpo de la solicitud:

Autorización

Debes incluir un token de acceso de OAuth 2.0 en el formato Authorization: Bearer YOUR_ACCESS_TOKEN que identifique una cuenta de administrador que actúe en nombre de un cliente o un anunciante que administre directamente su propia cuenta. Puedes encontrar instrucciones para recuperar un token de acceso en la guía de OAuth2. Un token de acceso es válido durante una hora después de que lo obtienes. Cuando vence, actualiza el token de acceso para recuperar uno nuevo. Ten en cuenta que nuestras bibliotecas cliente actualizan automáticamente los tokens vencidos.

Si encuentras errores de autorización, asegúrate de usar las credenciales correctas y de tener los permisos suficientes. Un error USER_PERMISSION_DENIED indica que es posible que el usuario autenticado no tenga acceso a la cuenta de cliente especificada en la solicitud. Consulta los niveles de acceso de Google Ads para obtener detalles sobre la administración de permisos.

login-customer-id

Este es el ID de cliente del cliente autorizado para usar en la solicitud, sin guiones (-). Si accedes a la cuenta de cliente a través de una cuenta de administrador, este encabezado es obligatorio y debe establecerse en el ID de cliente de la cuenta de administrador. Si no incluyes login-customer-id cuando te autenticas a través de una cuenta de administrador, se produce un error AuthorizationError.USER_PERMISSION_DENIED. Revisa los errores comunes para obtener más información sobre este tipo de error. Para obtener una explicación detallada de cómo se resuelve el acceso a la cuenta, consulta la guía del modelo de acceso de OAuth.

https://googleads.googleapis.com/v25/customers/CUSTOMER_ID/campaignBudgets:mutate

Establecer el login-customer-id equivale a elegir una cuenta en la IU de Google Ads después de acceder o hacer clic en tu imagen de perfil en la parte superior derecha. Si no incluyes este encabezado, se establece de forma predeterminada en el cliente operativo.

linked-customer-id

Este encabezado es obligatorio y lo usan los socios (como los proveedores de estadísticas de app de terceros o los socios de datos) cuando actúan en una cuenta de Google Ads vinculada. Este encabezado debe especificar el ID de cliente de la cuenta de Google Ads que tiene el vínculo de producto.

Considera la situación en la que un socio necesita realizar llamadas a la API a una cuenta de Google Ads en función de un vínculo de producto.

  • Anunciante: Es la cuenta de Google Ads que se administra o actualiza con la llamada a la API. El ID de la cuenta del anunciante se especifica en la solicitud. En REST, este es el parámetro de ruta de acceso customerId (por ejemplo, customers/1111111111/...), y, en gRPC, este es el campo customer_id en la solicitud.
  • Socio: Es la cuenta del socio (por ejemplo, un proveedor de estadísticas de aplicaciones de terceros o un socio de datos).
  • Cuenta vinculada: Es la cuenta de Google Ads que tiene un vínculo de producto establecido con el socio, lo que le otorga acceso al anunciante.

Un usuario que tiene acceso a la cuenta del socio realiza llamadas a la API para actuar sobre las entidades de la cuenta del anunciante (por ejemplo, para subir conversiones o administrar listas de usuarios). La cuenta vinculada puede ser la cuenta del anunciante o una cuenta de administrador de la cuenta del anunciante.

Los encabezados de la solicitud deben establecerse de la siguiente manera:

  • Authorization: Es un token de acceso de OAuth 2.0 para un usuario que tiene acceso al socio.
  • login-customer-id: Es el ID de cliente del socio. El usuario autenticado debe tener acceso a esta cuenta.
  • linked-customer-id: Es el ID de cliente de la cuenta vinculada. Este encabezado indica que la autorización para esta solicitud depende del vínculo de producto de la cuenta vinculada con el socio.

Existen dos situaciones de vinculación:

  • Si la cuenta del anunciante tiene un vínculo de producto directo con la cuenta del socio , la cuenta vinculada es el anunciante y linked-customer-id debe establecerse en el ID de cliente de la cuenta del anunciante.
  • Si la cuenta del anunciante está administrada por una cuenta de administrador que tiene un vínculo de producto con la cuenta del socio , la cuenta vinculada es la cuenta de administrador y linked-customer-id debe establecerse en el ID de cliente del administrador.

Ejemplo 1: Vínculo directo

Si la cuenta del anunciante 1111111111 tiene un vínculo directo con la cuenta del socio 2222222222 y la llamada a la API se orienta a customers/1111111111/...:

Authorization: Bearer YOUR_ACCESS_TOKEN
login-customer-id: 2222222222
linked-customer-id: 1111111111

Ejemplo 2: Vínculo de administrador

Si la cuenta del anunciante 1111111111 está administrada por la cuenta de administrador 3333333333, la cuenta de administrador 3333333333 tiene un vínculo con la cuenta del socio 2222222222 y la llamada a la API se orienta a customers/1111111111/...:

Authorization: Bearer YOUR_ACCESS_TOKEN
login-customer-id: 2222222222
linked-customer-id: 3333333333

Encabezados de respuesta

Los siguientes encabezados (o metadatos finales de gRPC) se muestran con el cuerpo de la respuesta. Te recomendamos que registres estos valores para la depuración.

request-id

El request-id es una cadena que identifica esta solicitud de forma única.