Çok kullanıcılı kimlik doğrulama iş akışında, kullanıcılarınızın kimliğini doğrulamak için kendi OAuth akışınızı oluşturursunuz. Google Identity belgelerinde, her uygulama türünü desteklemek için gereken Google Cloud Console proje yapılandırmasıyla birlikte ele alınan birden fazla uygulama türü vardır. Bu uygulama türlerinin tümü Google Ads API tarafından desteklenir. Göz önünde bulundurulması gereken ek teknik ayrıntılar şunlardır:
Uygulamanızı aşağıdaki OAuth 2.0 kapsamını isteyecek şekilde yapılandırın:
https://www.googleapis.com/auth/adwordsUygulamanız, kullanıcı çevrimdışıyken kullanıcı adına API çağrıları yapmak zorunda kalabilir. Hesap metriklerini çevrimdışı olarak indirip rapor oluşturmak ve hesap analizleri yapmak yaygın bir senaryodur. Bu nedenle, OAuth çevrimdışı erişimi istemenizi öneririz.
Uygulamanızın doğrulanması için OAuth uygulaması doğrulama sürecini tamamlayın.
İş akışına genel bakış
Çok kullanıcılı kimlik doğrulama iş akışını uygulamak için üç ana adım gerekir:
- Kullanıcıları OAuth kullanıcı rızası ekranına yönlendirin: Her kullanıcıyı,
https://www.googleapis.com/auth/adwordskapsamını ve çevrimdışı erişimi isteyen Google'ın OAuth 2.0 yetkilendirme uç noktasına yönlendirin. - Yetkilendirme kodunu jetonlarla değiştirin: Kullanıcı izin verdikten sonra döndürülen yetkilendirme kodunu yakalayın ve erişim jetonu ile yenileme jetonuyla değiştirin.
- Jetonları depolama ve istemciyi çalışma zamanında başlatma: Her kullanıcının yenileme jetonunu veri deponuzda güvenli bir şekilde saklayın ve çalışma zamanında
GoogleAdsClientörneğinizi başlatırken kullanıcının kimlik bilgilerini iletin.
İstemci kitaplığı yapılandırması
Kullanıcıyı yetkilendirip OAuth 2.0 kimlik bilgilerini aldıktan sonra, programlama dilinize karşılık gelen sekmedeki talimatları uygulayarak istemci kitaplığını yapılandırabilirsiniz.
Java
GoogleAdsClient örneğinizi, API çağrıları yaptığınız hesapların sahibi olan kullanıcıdan aldığınız kimlik bilgilerini kullanarak çalışma zamanında başlatabilirsiniz.
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();
Ek seçenekler için yapılandırma kılavuzuna bakın.
.NET
GoogleAdsClient örneğinizi, API çağrıları yaptığınız hesapların sahibi olan kullanıcıdan aldığınız kimlik bilgilerini kullanarak çalışma zamanında başlatabilirsiniz.
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);
Ek seçenekler için yapılandırma kılavuzuna bakın.
Python
GoogleAdsClient örneğinizi, API çağrıları yaptığınız hesapların sahibi olan kullanıcıdan aldığınız kimlik bilgilerini kullanarak çalışma zamanında başlatabilirsiniz.
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)
Ek seçenekler için yapılandırma kılavuzuna bakın.
PHP
GoogleAdsClient örneğinizi, API çağrıları yaptığınız hesapların sahibi olan kullanıcıdan aldığınız kimlik bilgilerini kullanarak çalışma zamanında başlatabilirsiniz.
$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();
Ek seçenekler için yapılandırma kılavuzuna bakın.
Ruby
GoogleAdsClient örneğinizi, API çağrıları yaptığınız hesapların sahibi olan kullanıcıdan aldığınız kimlik bilgilerini kullanarak çalışma zamanında başlatabilirsiniz.
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
Ek seçenekler için yapılandırma kılavuzuna bakın.
Perl
GoogleAdsClient örneğinizi, API çağrıları yaptığınız hesapların sahibi olan kullanıcıdan aldığınız kimlik bilgilerini kullanarak çalışma zamanında başlatabilirsiniz.
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");
Ek seçenekler için yapılandırma kılavuzuna bakın.
curl
Öncelikle bir HTTP istemcisi kullanarak OAuth 2.0 erişim jetonu getirin. Bu kılavuzda curl komutu kullanılmaktadır.
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/tokenErişim jetonunu API çağrılarınızda kullanabilirsiniz. Aşağıdaki örnekte, hesabınızdaki kampanyaları almak için GoogleAdsService.SearchStream yöntemini kullanarak nasıl kampanya raporu çalıştırılacağı gösterilmektedir. Bu kılavuzda raporlama ile ilgili ayrıntılar yer almamaktadır.
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"query.json dosyasının içeriği aşağıdaki gibidir:
{
"query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}