Bu kılavuzda, hizmet hesaplarıyla Google Ads API'ye nasıl erişileceği açıklanmaktadır.
Hizmet hesabı, bireysel bir son kullanıcıya değil, uygulamanıza ait olan bir hesaptır. Hizmet hesapları, insan yetkilendirmesi gerektirmeyen bir OAuth 2.0 akışı kullanır. Bunun yerine, yalnızca uygulamanızın erişebileceği bir anahtar dosyası kullanılır.
Hizmet hesaplarını kullanmanın iki temel avantajı vardır:
Google Ads hesaplarına Google Ads API erişimi için yetkilendirme, Google Ads kullanıcı arayüzü tarafından sunulan yetkilendirme ve hesap yönetimi özelliklerinden yararlanarak bir yapılandırma adımı olarak yapılır. Bu sayede, OAuth 2.0 akışları oluşturmak ve kullanıcı etkileşimi, kullanıcı kimlik bilgilerini depolama vb. ile ilgili karmaşık durumlarla uğraşmak gerekmediğinden geliştiricinin işi kolaylaşır.
Google Ads hesaplarına erişim için yetkilendirme, tek tek kullanıcı kimlik bilgilerine bağlı değildir. Bu, erişimi ilk yetkilendiren çalışan ekipten veya şirketten ayrılsa bile yetkilendirmenin devam etmesinin beklendiği durumlarda faydalı olabilir.
Hesap erişimi kurulumu
Hizmet hesabı ve kimlik bilgileri oluşturarak başlayın.
Hizmet hesabı anahtarını JSON biçiminde indirin ve hizmet hesabı kimliğini ve e-posta adresini not edin.
Google Ads hesabınızda yönetici olarak oturum açın. Yönetici > Erişim ve güvenlik'e gidin.
Kullanıcılar sekmesinde + düğmesini tıklayın.
Hizmet hesabı e-postasını E-posta giriş kutusuna yazın. Uygun hesap erişim düzeyini seçip Hesap ekle düğmesini tıklayın. E-posta ve yönetici erişim düzeylerinin hizmet hesapları için desteklenmediğini unutmayın.
Hizmet hesabına erişim izni verilir.
İstemci kitaplığı yapılandırması
İstemci kitaplığınızı yapılandırma talimatları için programlama dilinize karşılık gelen sekmeyi seçin.
Java
Yapılandırmanızda özel anahtar JSON yolunu ayarlayın. ads.properties
dosyası kullanıyorsanız aşağıdakileri ekleyin:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
Ek ayrıntılar için yapılandırma kılavuzuna bakın.
.NET
GoogleAdsConfig
örneğinde OAuth2Mode
ve OAuth2SecretsJsonPath
özelliklerini ayarlayın ve GoogleAdsClient
nesnesini başlatmak için kullanın.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "PATH_TO_JSON_SECRETS_PATH",
...
};
GoogleAdsClient client = new GoogleAdsClient(config);
Ek ayrıntılar için yapılandırma kılavuzuna bakın.
Python
Yapılandırmanızda özel anahtar JSON yolunu ayarlayın. google-ads.yaml file
, YAML dizesi veya dict
kullanıyorsanız aşağıdakileri ekleyin:
json_key_file_path: JSON_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=JSON_KEY_FILE_PATH
PHP
google_ads_php.ini
cihazınızda aşağıdaki anahtarları yapılandırın. Ek ayrıntılar için yapılandırma kılavuzuna bakın.
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
Ruby
google_ads_config.rb
dosyanızda aşağıdaki anahtarları yapılandırın.
c.keyfile = 'JSON_KEY_FILE_PATH'
Perl
Yapılandırmanızda özel anahtar JSON yolunu ve temsilci hesap kimliğini ayarlayın.
googleads.properties
dosyası kullanıyorsanız aşağıdakileri ekleyin:
jsonKeyFilePath=JSON_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=JSON_KEY_FILE_PATH
curl
Öncelikle hizmet hesabını gcloud CLI'da etkin kimlik bilgileri olarak ayarlayın.
gcloud auth login --cred-file=PATH_TO_CREDENTIALS_JSON
Ardından, Google Ads API için bir OAuth 2.0 erişim jetonu getirin.
gcloud auth \
print-access-token \
--scopes='https://www.googleapis.com/auth/adwords'
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 almaz.
curl -i -X POST https://googleads.googleapis.com/v21/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"
}