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 durante las pruebas y la depuración.
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.
Preferido:
- Crea el cuerpo de la solicitud como un búfer de protocolo.
- Envía la solicitud al servidor con HTTP/2.
- Deserializa la respuesta en un búfer de protocolo.
- Interpreta los resultados.
La mayor parte de nuestra documentación describe el uso de gRPC.
Opcional:
- Crea el cuerpo de la solicitud como un objeto JSON.
- Envía la solicitud al servidor con HTTP 1.1.
- Deserializa la respuesta como un objeto JSON.
- Interpreta los resultados.
Consulta la guía de la interfaz de REST para obtener más información sobre el uso de REST.
Identificadores de recursos
Los objetos de la API de Google Ads se direccionan con identificadores compuestos y nombres de recursos estructurados.
Nombres de recursos
La mayoría de los objetos de la API se identifican por sus cadenas de nombres de recursos. Estas cadenas también funcionan como URLs cuando se usa la interfaz de REST. Consulta la estructura de los nombres de recursos de la interfaz de REST.
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 principal y una virgulilla (~).
Por ejemplo, un AdGroupAd tiene el patrón de nombre de recurso customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}. Dado que su identificador compuesto combina el ID del grupo de anuncios principal (ad_group.id) y el ID del anuncio subyacente (ad_group_ad.ad.id), anteponemos el ID del grupo de anuncios al ID del anuncio:
AdGroupIdde123+~+AdIdde45678= grupo de anuncios compuesto ID del anuncio de123~45678.
Encabezados de la solicitud
Estos son los encabezados HTTP (o los metadatos de gRPC) que acompañan al cuerpo de la solicitud:
Autorización
Debes incluir un token de acceso de OAuth 2.0 en forma de 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. En la guía de OAuth2, encontrarás instrucciones para recuperar un token de acceso. Un token de acceso es válido durante una hora después de que lo adquieres. 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 del cliente especificada en la solicitud. Si tu proyecto de Google Cloud solo está aprobado para el acceso a Test y envías una solicitud dirigida a una cuenta de producción, la API devolverá AuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION en la versión 25 y posteriores (o AuthorizationError.ACTION_NOT_PERMITTED en la versión 24 y anteriores).
Consulta Niveles de acceso de Google Ads para obtener detalles sobre la administración de permisos.
login-customer-id
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/1234567890/campaignBudgets:mutate
Configurar 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 usará el cliente operativo de forma predeterminada.
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 la vinculación del 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 una vinculación del 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
customerId(por ejemplo,customers/1111111111/...), y en gRPC, este es el campocustomer_iden 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 de socio realiza llamadas a la API para actuar sobre las entidades de la cuenta de 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 a Partner.login-customer-id: Es el ID de cliente de la cuenta de socio. El usuario autenticado debe tener acceso a esta cuenta.linked-customer-id: Es el ID del cliente de la cuenta vinculada. Este encabezado indica que la autorización para esta solicitud depende de la vinculación del producto de la cuenta vinculada con el socio.
Existen dos situaciones de vinculación:
- Si la cuenta del Anunciante tiene una vinculación directa de productos con la cuenta del Socio, la Cuenta vinculada es la del Anunciante y
linked-customer-iddebe establecerse en el ID de cliente de la cuenta del Anunciante. - Si la cuenta del anunciante se administra a través de una cuenta de administrador que tiene una vinculación de producto con la cuenta del socio, la cuenta vinculada es la cuenta de administrador y
linked-customer-iddebe 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 dirige a customers/1111111111/..., sucede lo siguiente:
Authorization: Bearer YOUR_ACCESS_TOKEN
login-customer-id: 2222222222
linked-customer-id: 1111111111
Ejemplo 2: Vínculo de administrador
Si la cuenta de anunciante 1111111111 está administrada por la cuenta de administrador 3333333333, la cuenta de administrador 3333333333 tiene un vínculo con la cuenta de socio 2222222222 y la llamada a la API se dirige a customers/1111111111/..., sucede lo siguiente:
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 devuelven con el cuerpo de la respuesta. Te recomendamos que registres estos valores para depurar.
request-id
El request-id es una cadena que identifica de forma única esta solicitud. Proporciona este valor cuando te comuniques con el equipo de asistencia para solucionar problemas relacionados con solicitudes a la API fallidas o inesperadas.