Flujo de trabajo de la cuenta de servicio

En esta guía, se explica cómo acceder a la API de Google Ads con cuentas de servicio.

Una cuenta de servicio es una cuenta que pertenece a tu app y no a un usuario final individual. Las cuentas de servicio emplean un flujo de OAuth 2.0 que no requiere autorización humana, sino que utiliza un archivo de claves al que solo puede acceder tu app.

El uso de cuentas de servicio proporciona dos beneficios clave:

  • La autorización para el acceso a la API de Google Ads a las cuentas de Google Ads se realiza como un paso de configuración, aprovechando las funciones de autorización y administración de cuentas que ofrece la IU de Google Ads. Esto ahorra el esfuerzo del desarrollador, ya que no es necesario compilar flujos de OAuth 2.0 ni lidiar con complicaciones que impliquen la interacción del usuario, el almacenamiento de credenciales del usuario, etcétera.

  • La autorización para acceder a las cuentas de Google Ads no está vinculada a las credenciales de usuarios individuales, lo que puede ser útil en los casos en que se espera que la autorización continúe incluso si el empleado que originalmente autorizó el acceso deja el equipo o la empresa.

Configuración del acceso a la cuenta

  1. Comienza por crear una cuenta de servicio y credenciales.

    Descarga la clave de la cuenta de servicio en formato JSON y anota el ID y el correo electrónico de la cuenta de servicio.

  2. Accede a tu cuenta de Google Ads como administrador. Navega a Administrador > Acceso y seguridad.

  3. Haz clic en el botón + en la pestaña Usuarios.

  4. Escribe el correo electrónico de la cuenta de servicio en el cuadro de entrada Correo electrónico. Selecciona el nivel de acceso a la cuenta adecuado y haz clic en el botón Agregar cuenta. Ten en cuenta que los niveles de acceso de correo electrónico y administrador no son compatibles con las cuentas de servicio.

  5. Se otorga acceso a la cuenta de servicio.

Configuración de la biblioteca cliente

Selecciona la pestaña correspondiente a tu lenguaje de programación para obtener instrucciones sobre cómo configurar tu biblioteca cliente.

Java

Establece la ruta de acceso JSON de la clave privada en tu configuración. Si usas un archivo ads.properties, agrega lo siguiente:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

Consulta la guía de configuración para obtener más detalles.

.NET

Establece OAuth2Mode y OAuth2SecretsJsonPath en la instancia GoogleAdsConfig y úsala para inicializar el objeto GoogleAdsClient.

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "PATH_TO_JSON_SECRETS_PATH",
    ...
};
GoogleAdsClient client = new GoogleAdsClient(config);

Consulta la guía de configuración para obtener más detalles.

Python

Establece la ruta de acceso JSON de la clave privada en tu configuración. Si usas un google-ads.yaml file, una cadena de YAML o dict, agrega lo siguiente:

json_key_file_path: JSON_KEY_FILE_PATH

Si usas variables de entorno, agrega lo siguiente a tu configuración o entorno de Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

PHP

Configura las siguientes claves en tu google_ads_php.ini. Consulta la guía de configuración para obtener más detalles.

; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"

Ruby

Configura las siguientes claves en tu google_ads_config.rb.

c.keyfile = 'JSON_KEY_FILE_PATH'

Perl

Establece la ruta de acceso JSON de la clave privada y el ID de la cuenta delegada en tu configuración. Si usas un archivo googleads.properties, agrega lo siguiente:

jsonKeyFilePath=JSON_KEY_FILE_PATH

Si usas variables de entorno, agrega lo siguiente a tu configuración o entorno de Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH

curl

Comienza por configurar la cuenta de servicio como las credenciales activas en la CLI de gcloud.

gcloud auth login --cred-file=PATH_TO_CREDENTIALS_JSON

A continuación, recupera un token de acceso de OAuth 2.0 para la API de Google Ads.

gcloud auth \
  print-access-token \
  --scopes='https://www.googleapis.com/auth/adwords'

Ahora puedes usar el token de acceso en tus llamadas a la API. En el siguiente ejemplo, se muestra cómo ejecutar un informe de campañas con el método GoogleAdsService.SearchStream para recuperar las campañas de tu cuenta. En esta guía, no se abordan los detalles de la generación de informes.

curl -i -X POST https://googleads.googleapis.com/v21/customers/CUSTOMER_ID/googleAds:searchStream \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer ACCESS_TOKEN" \
   -H "developer-token: DEVELOPER_TOKEN" \
   -H "login-customer-id: LOGIN_CUSTOMER_ID" \
   --data-binary "@query.json"

El contenido de query.json es el siguiente:

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}