Ç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 dokümanlarında ve Google Cloud Console proje yapılandırmasında, desteklemeniz gereken uygulama türüyle ilgili birden fazla uygulama türü ele alınır. Bu uygulama türlerinin tümü Google Ads API tarafından desteklenir. Göz önünde bulundurmanız gereken ek teknik ayrıntılar şunlardır:

  1. Google Ads API'ye erişmek için uygulamanızı aşağıdaki kapsamda kimlik doğrulaması yapacak şekilde yapılandırmanız gerekir:

    https://www.googleapis.com/auth/adwords
    
  2. Uygulamanız, kullanıcılar çevrimdışıyken kullanıcı adına API çağrıları yapmak zorunda kalabilir. Hesap metriklerini çevrimdışı olarak indirerek rapor oluşturmak ve hesap analizi yapmak yaygın bir senaryodur. Bu nedenle, [OAuth çevrimdışı erişimi][oauth-offline-access] istemenizi öneririz.

  3. [OAuth uygulama doğrulama sürecinden][app-verification] geçmeli ve uygulamanızı sertifikalandırmalısınız.

İ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(OAUTH_CLIENT_ID)
        .setClientSecret(OAUTH_CLIENT_SECRET)
        .setRefreshToken(REFRESH_TOKEN)
        .build();

// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
    GoogleAdsClient.newBuilder()
        // Sets the developer token which enables API access.
        .setDeveloperToken(DEVELOPER_TOKEN)
        // Sets the OAuth credentials which provide Google Ads account access.
        .setCredentials(credentials)
        // Optional: sets the login customer ID.
        .setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))
        .build();
``` See the [configuration guide][java-config-guide] for additional options.

.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 googleAdsConfig = new GoogleAdsConfig()
{
    DeveloperToken = DEVELOPER_TOKEN,
    LoginCustomerId = LOGIN_CUSTOMER_ID,
    OAuth2ClientId = OAUTH_CLIENT_ID,
    OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
    OAuth2RefreshToken = REFRESH_TOKEN,
};

GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);

Ek seçenekler için [yapılandırma kılavuzuna][dotnet-config-guide] 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 = {
    "developer_token": "INSERT_DEVELOPER_TOKEN_HERE",
    "login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
    "refresh_token": "REFRESH_TOKEN",
    "client_id": "OAUTH_CLIENT_ID",
    "client_secret": "OAUTH_CLIENT_SECRET"}

client = GoogleAdsClient.load_from_dict(credentials)

Ek seçenekler için [yapılandırma kılavuzuna][python-config-guide] 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_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

Ek seçenekler için [yapılandırma kılavuzuna][php-config-guide] 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_CLIENT_ID_HERE'
    config.client_secret = 'INSERT_CLIENT_SECRET_HERE'
    config.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
    config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
    config.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'
  end

Ek seçenekler için [yapılandırma kılavuzuna][ruby-config-guide] 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({
  developer_token   => "INSERT_DEVELOPER_TOKEN_HERE",
  login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});

my $oauth2_applications_handler = $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN");

Ek seçenekler için [yapılandırma kılavuzuna][perl-config-guide] bakın.

curl

İlk olarak, 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://www.googleapis.com/oauth2/v3/token

Artık API çağrılarınızda erişim jetonunu kullanabilirsiniz. Aşağıdaki örnekte, hesabınızdaki kampanyaları almak için GoogleAdsService.SearchStream yöntemi kullanılarak 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/v24/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"

query.json klasörü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"
}

[oauth-offline-access]: /identity/protocols/oauth2/web-server#offline [app-verification]: //support.google.com/cloud/answer/13461325 [dotnet-config-guide]: /google-ads/api/docs/client-libs/dotnet/configuration [java-config-guide]: /google-ads/api/docs/client-libs/java/config-file [python-config-guide]: /google-ads/api/docs/client-libs/python/configuration [php-config-guide]: /google-ads/api/docs/client-libs/php/configuration [ruby-config-guide]: /google-ads/api/docs/client-libs/ruby/configuration [perl-config-guide]: /google-ads/api/docs/client-libs/perl/configuration