Kimlik Doğrulama ve Yetkilendirme

Google Ads API, diğer Google API'leri gibi kimlik doğrulama ve yetkilendirme için OAuth 2.0 protokolünü kullanır. OAuth 2.0, Google Ads API istemci uygulamanızın kullanıcının giriş bilgilerini işlemesi veya depolaması gerekmeden kullanıcının Google Ads hesabına erişmesini sağlar.

Google Ads erişim modelini anlama

Google Ads API ile etkili bir şekilde çalışmak için Google Ads erişim modelinin nasıl çalıştığını anlamanız gerekir. Google Ads erişim modeli kılavuzunu okumanızı öneririz.

OAuth iş akışları

Google Ads API ile çalışırken kullanılan üç yaygın iş akışı vardır.

Hizmet hesabı akışı

İş akışınızda herhangi bir kullanıcı etkileşimi gerekmiyorsa bu iş akışını kullanmanız önerilir. Bu iş akışı, kullanıcının Google Ads hesabına hizmet hesabı eklediği bir yapılandırma adımı gerektirir. Uygulama daha sonra hizmet hesabının kimlik bilgilerini kullanarak kullanıcının Google Ads hesabını yönetebilir.

Perl istemci kitaplığında hizmet hesabı ile kendi kimlik bilgilerinizi kullanarak API erişimi için OAuth2'yi nasıl ayarlayacağınız aşağıda açıklanmıştır:

  1. OAuth2 kimlik bilgileri oluşturma:

    Hizmet hesabı ve *.JSON dosyası oluşturma talimatlarını uygulayın.

  2. İstemci kitaplığını ayarlayın:

    Yapılandırmanızda özel anahtar JSON yolunu ayarlayın. googleads.properties dosyası kullanıyorsanız aşağıdakileri ekleyin:

    jsonKeyFilePath=PRIVATE_KEY_FILE_PATH
    

    Ortam değişkenleri kullanıyorsanız Bash yapılandırmanıza veya ortamınıza aşağıdakileri ekleyin:

    export GOOGLE_ADS_JSON_KEY_FILE_PATH=PRIVATE_KEY_FILE_PATH
    

    Daha fazla bilgi edinmek için hizmet hesabı iş akışı kılavuzuna bakın.

Tek kullanıcılı kimlik doğrulama akışı

Hizmet hesaplarını kullanamıyorsanız bu iş akışını kullanabilirsiniz. Bu iş akışı için iki yapılandırma adımı gerekir:

  1. Google Ads API kullanılarak yönetilecek tüm hesaplara tek bir kullanıcının erişmesini sağlayın. Genel olarak, kullanıcıya bir Google Ads API yönetici hesabına erişim izni verilir ve bu yönetici hesabı altındaki tüm Google Ads hesapları bağlanır.
  2. Kullanıcı, uygulamanızın kendi adına tüm Google Ads hesaplarını yönetmesine yetki vermek için generate_user_credentials.pl kod örneğini çalıştırır.

Aşağıdaki adımlarda, etkileşimli bir kod örneği çalıştırılır. Bu örnekte, giriş sağlamanız gerekir.

  1. Terminalde, examples dizinindeki generate_user_credentials.pl örneğini çalıştırın. INSERT_XXX_HERE değerlerini çalıştırmadan önce örnekte değiştirebilir veya istemci kimliği için -client_id, istemci gizli anahtarı için -client_secret komut satırı bağımsız değişkenlerini kullanabilirsiniz.

    perl generate_user_credentials.pl -client_id {client_id} -client_secret {client_secret}
    
  2. Bu kod örneği, uygulamayı sizin adınıza Google Ads hesabınıza erişmesi için yetkilendirmeniz gereken bir URL'yi ziyaret etmenizi ister.

    Paste this url in your browser:
    https://accounts.google.com/o/oauth2/v2/auth?response_type=code&access_type=offline&client_id=...
    

    URL'ye gizli tarayıcı oturumunda veya gizli pencerede gidin. Google Ads'e erişmek için kullandığınız Google Hesabı ile oturum açın. Genellikle bu, hesap hiyerarşisinde yönetmeniz gereken tüm hesapları içeren bir Google Ads yönetici hesabına erişimi olan bir e-posta hesabıdır. OAuth 2.0 izin ekranında Devam'ı tıklayın.

    OAuth 2.0 izin ekranı

    Yetkilendirmenin başarılı olduğunu belirten bir mesajın yer aldığı sayfaya yönlendirilirsiniz.

    Authorization code was successfully retrieved.
    
  3. Kod örneğini çalıştırdığınız konsola dönün. Kod örneğinin tamamlandığını ve yenileme jetonunuz ile bazı talimatların gösterildiğini görürsünüz. Ardından, istemci kitaplığını yapılandırmak için uygulamanız gereken talimatlar gösterilir:

    Replace the following keys and values in your googleads.properties configuration file:
    
    clientId==***********************apps.googleusercontent.com
    clientSecret=****
    refreshToken=****
    
  4. İşlemi sonlandırmak için Ctrl + C düğmesine basın. Ardından, oluşturulan yenileme jetonunu istemci kimliği ve istemci gizli anahtarıyla birlikte googleads.properties dosyanıza kopyalayın veya kitaplığı çalışma zamanında başlatmanız gerekirse kullanmak üzere başka bir yere kaydedin.

Kitaplık, googleads.properties içinde aşağıdakiler ayarlanarak kullanıcının OAuth 2.0 kimlik bilgileriyle başlatılabilir:

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
developerToken=DEVELOPER_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

Alternatif olarak, ortam değişkenlerini kullanın:

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

Daha fazla bilgi edinmek için tek kullanıcılı kimlik doğrulama iş akışı rehberine bakın.

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

Uygulamanızın, kullanıcıların oturum açmasına ve Google Ads hesaplarını kendi adlarına yönetmek için uygulamanıza yetki vermesine izin vermesi durumunda bu iş akışını kullanmanız önerilir. Uygulamanız, OAuth 2.0 kullanıcı kimlik bilgilerini oluşturur ve yönetir.

Perl için genellikle uygulamanızın OAuth 2.0 yönlendirmesini ve jeton yönetimini yaptığı bir web uygulaması akışı uygularsınız. Kullanıcı, uygulamanız üzerinden kimliğini doğrular ve uygulamanız, kullanıcı adına API çağrıları yapmak için kullanıcının yenileme jetonunu saklayıp kullanır.

Elde edilen kimlik bilgilerinin kullanımıyla ilgili yapılandırma, tek kullanıcılı kimlik doğrulama akışıyla aynıdır:

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
developerToken=DEVELOPER_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

Alternatif olarak ortam değişkenlerini kullanın:

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

Daha fazla bilgi edinmek için çok kullanıcılı kimlik doğrulama iş akışı kılavuzuna bakın.

Kullanıcım birden fazla hesap yönetiyorsa ne olur?

Kullanıcıların, hesaplara doğrudan erişerek veya bir Google Ads yönetici hesabı üzerinden birden fazla Google Ads hesabını yönetmesi yaygın bir durumdur. Perl istemci kitaplığı, bu tür durumların nasıl ele alınacağını gösteren örnekler sunar.

  1. get_account_hierarchy.pl örneğinde, bir Google Ads yönetici hesabı altındaki tüm hesapların listesinin nasıl alınacağı gösterilmektedir.
  2. list_accessible_customers.pl örneğinde, kullanıcının doğrudan erişebildiği tüm hesapların listesinin nasıl alınacağı gösterilmektedir. Bu hesaplar daha sonra googleads.properties dosyasındaki LoginCustomerId ayarı veya GOOGLE_ADS_LOGIN_CUSTOMER_ID ortam değişkeni için geçerli değerler olarak kullanılabilir.