Çok kullanıcılı kimlik doğrulama iş akışı

Ç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 API Konsolu 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. Unutulmaması gereken diğer 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/adwords
    
  • Uygulamanızın, kullanıcı çevrimdışıyken kullanıcı adına API çağrıları yapması gerekebilir. Yaygın bir senaryo, rapor oluşturmak ve hesap analizleri yapmak için hesap metriklerini çevrimdışı olarak indirmektir. 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 üç ana adımdan oluşur:

  1. Kullanıcıları OAuth kullanıcı rızası ekranına yönlendirin: Her kullanıcıyı, https://www.googleapis.com/auth/adwords kapsamını ve çevrimdışı erişimi isteyen Google'ın OAuth 2.0 yetkilendirme uç noktasına yönlendirin. Kullanıcıların, yetkilendirme akışını tamamlamak ve yenileme jetonu oluşturmak için geçiş anahtarı ile kimlik doğrulaması yapması gerekir.
  2. Jetonlar için yetkilendirme kodu değiş tokuşu yapın: Kullanıcı izin verdikten sonra, döndürülen yetkilendirme kodunu alın ve bir erişim jetonu ile yenileme jetonuyla değiştirin.
  3. Jetonları depolama ve istemciyi çalışma zamanında ilk kullanıma hazırlama: Her kullanıcının yenileme jetonunu veri deponuzda güvenli bir şekilde saklayın ve çalışma zamanında GoogleAdsClient örneğinizi ilk kullanıma hazırlarken 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, hesaplarına API çağrıları yaptığınız 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, hesaplarına API çağrıları yaptığınız 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, hesaplarına API çağrıları yaptığınız 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 sahibinden 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, hesaplarına API çağrıları yaptığınız 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, hesaplarına API çağrıları yaptığınız 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

OAuth 2.0 erişim jetonu almak için bir HTTP istemcisi kullanarak başlayın. 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/token

Eriş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 kampanya raporunun nasıl çalıştırılacağı gösterilmektedir. Bu kılavuzda raporlama ile ilgili ayrıntılar ele alınmamaktadır.

curl -i -X POST \
  https://googleads.googleapis.com/v26/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 şu şekildedir:

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