En el flujo de trabajo de autenticación multiusuario, compilas tu propio flujo de OAuth para autenticar a tus usuarios. En la documentación de Google Identity, se describen varios tipos de apps, junto con la configuración del proyecto de la consola de Google Cloud que necesitas para admitir cada tipo de app. La API de Google Ads admite todos estos tipos de aplicaciones. Los detalles técnicos adicionales que debes tener en cuenta son los siguientes:
Configura tu aplicación para que solicite el siguiente permiso de OAuth 2.0:
https://www.googleapis.com/auth/adwordsEs posible que tu app deba realizar llamadas a la API en nombre del usuario mientras está sin conexión. Una situación común es descargar las métricas de la cuenta sin conexión para generar informes y realizar análisis de la cuenta. Por este motivo, recomendamos solicitar el acceso sin conexión de OAuth.
Completa el proceso de verificación de la app de OAuth para que se verifique tu app.
Descripción general del flujo de trabajo
La implementación de un flujo de trabajo de autenticación multiusuario implica tres pasos principales:
- Redirige a los usuarios a la pantalla de consentimiento de OAuth: Redirige a cada usuario al extremo de autorización de OAuth 2.0 de Google solicitando el permiso
https://www.googleapis.com/auth/adwordsy el acceso sin conexión. - Intercambia el código de autorización por tokens: Después de que el usuario otorga permiso, captura el código de autorización que se devolvió y cámbialo por un token de acceso y un token de actualización.
- Almacena tokens e inicializa el cliente en el tiempo de ejecución: Almacena de forma segura el token de actualización de cada usuario en tu almacén de datos y pasa las credenciales del usuario cuando inicialices tu instancia de
GoogleAdsClienten el tiempo de ejecución.
Configuración de la biblioteca cliente
Una vez que autorices al usuario y obtengas las credenciales de OAuth 2.0, puedes configurar la biblioteca cliente siguiendo las instrucciones de la pestaña correspondiente a tu lenguaje de programación.
Java
Puedes inicializar tu instancia de GoogleAdsClient en el tiempo de ejecución con las credenciales que obtuviste del usuario cuyas cuentas estás llamando a las APIs.
UserCredentials credentials =
UserCredentials.newBuilder()
.setClientId("INSERT_OAUTH2_CLIENT_ID_HERE")
.setClientSecret("INSERT_OAUTH2_CLIENT_SECRET_HERE")
.setRefreshToken("INSERT_OAUTH2_REFRESH_TOKEN_HERE")
.build();
// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
GoogleAdsClient.newBuilder()
// Sets the OAuth credentials which provide Google Ads account
// access.
.setCredentials(credentials)
// Optional: sets the login customer ID.
.setLoginCustomerId(Long.valueOf("INSERT_LOGIN_CUSTOMER_ID_HERE"))
.build();
Consulta la guía de configuración para ver opciones adicionales.
.NET
Puedes inicializar tu instancia de GoogleAdsClient en el tiempo de ejecución con las credenciales que obtuviste del usuario cuyas cuentas estás llamando a las APIs.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID_HERE",
OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE",
OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
};
GoogleAdsClient client = new GoogleAdsClient(config);
Consulta la guía de configuración para ver opciones adicionales.
Python
Puedes inicializar tu instancia de GoogleAdsClient en el tiempo de ejecución con las credenciales que obtuviste del usuario cuyas cuentas estás llamando a las APIs.
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
"refresh_token": "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
"client_id": "INSERT_OAUTH2_CLIENT_ID_HERE",
"client_secret": "INSERT_OAUTH2_CLIENT_SECRET_HERE",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
Consulta la guía de configuración para ver opciones adicionales.
PHP
Puedes inicializar tu instancia de GoogleAdsClient en el tiempo de ejecución con las credenciales que obtuviste del usuario cuyas cuentas estás llamando a las APIs.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_OAUTH2_CLIENT_ID_HERE')
->withClientSecret('INSERT_OAUTH2_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_OAUTH2_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
Consulta la guía de configuración para ver opciones adicionales.
Ruby
Puedes inicializar tu instancia de GoogleAdsClient en el tiempo de ejecución con las credenciales que obtuviste del usuario cuyas cuentas estás llamando a las APIs.
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.client_id = 'INSERT_OAUTH2_CLIENT_ID_HERE'
config.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
config.refresh_token = 'INSERT_OAUTH2_REFRESH_TOKEN_HERE'
config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end
Consulta la guía de configuración para ver opciones adicionales.
Perl
Puedes inicializar tu instancia de GoogleAdsClient en el tiempo de ejecución con las credenciales que obtuviste del usuario cuyas cuentas estás llamando a las APIs.
my $api_client = Google::Ads::GoogleAds::Client->new({
login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});
my $oauth2_handler = $api_client->get_oauth2_applications_handler();
$oauth2_handler->set_client_id("INSERT_OAUTH2_CLIENT_ID_HERE");
$oauth2_handler->set_client_secret("INSERT_OAUTH2_CLIENT_SECRET_HERE");
$oauth2_handler->set_refresh_token("INSERT_OAUTH2_REFRESH_TOKEN_HERE");
Consulta la guía de configuración para ver opciones adicionales.
curl
Comienza por usar un cliente HTTP para recuperar un token de acceso de OAuth 2.0. En esta guía, se usa el comando curl.
curl \
--data "grant_type=refresh_token" \
--data "client_id=CLIENT_ID" \
--data "client_secret=CLIENT_SECRET" \
--data "refresh_token=REFRESH_TOKEN" \
https://oauth2.googleapis.com/tokenPuedes usar el token de acceso en tus llamadas a la API. En el siguiente ejemplo, se muestra cómo ejecutar un informe de la campaña 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/v25/customers/CUSTOMER_ID/googleAds:searchStream \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_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"
}