Diğer Google API'leri gibi Google Ads API de kimlik doğrulama ve yetkilendirme için OAuth 2.0 protokolünü kullanır. OAuth 2.0, Google Ads API .NET istemci uygulamanızın, kullanıcının giriş bilgilerini işlemesine veya depolamasına gerek kalmadan kullanıcının Google Ads hesabına erişmesine olanak tanır.
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 inceleyin.
OAuth iş akışları
Google Ads API ile çalışırken kullanılan üç yaygın iş akışı vardır.
Hizmet hesabı akışı
Uygulamanız insan etkileşimi gerektirmiyorsa önerilen iş akışı budur. Bu iş akışı, kullanıcının Google Ads hesabına bir hizmet hesabı eklediği bir yapılandırma adımı gerektirir. Uygulama, kullanıcının Google Ads hesabını yönetmek için hizmet hesabının kimlik bilgilerini kullanabilir.
Kitaplığı aşağıdaki gibi yapılandırın:
// Initialize a GoogleAdsConfig instance.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "PATH_TO_CREDENTIALS_JSON",
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
// Initialize a GoogleAdsClient instance.
GoogleAdsClient client = new GoogleAdsClient(config);
Daha fazla bilgi edinmek için hizmet hesabı iş akışı kılavuzunu inceleyin.
Tek kullanıcılı kimlik doğrulama akışı
Hizmet hesaplarını kullanamıyorsanız bu iş akışından yararlanabilirsiniz. Bu iş akışı için iki yapılandırma adımı gerekir:
- Google Ads API kullanılarak yönetilecek tüm hesaplara tek bir kullanıcıya erişim izni verin. Yaygın bir yaklaşım, kullanıcıya bir Google Ads API yönetici hesabına erişim vermek ve tüm Google Ads hesaplarını bu yönetici hesabına bağlamaktır.
- Kullanıcı, uygulamanızın tüm Google Ads hesaplarını kendi adına yönetmesine yetki vermek için
gcloudgibi bir komut satırı aracı veyaGenerateUserCredentialskod örneğini çalıştırır.
Kullanıcının OAuth 2.0 kimlik bilgilerini kullanarak kitaplığı aşağıdaki gibi başlatın:
GoogleAdsConfig config = new GoogleAdsConfig()
{
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
OAuth2RefreshToken = "INSERT_REFRESH_TOKEN_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Daha fazla bilgi edinmek için tek kullanıcı kimlik doğrulama iş akışı kılavuzuna bakın.
Çok kullanıcılı kimlik doğrulama akışı
Uygulamanız, kullanıcıların oturum açmasına ve uygulamanızı kendi adlarına Google Ads hesaplarını yönetmesi için yetkilendirmesine izin veriyorsa önerilen iş akışı budur. Uygulamanız, OAuth 2.0 kullanıcı kimlik bilgilerini kullanıcı oturumu veya isteği başına dinamik olarak oluşturup yönetir ve ardından etkin kullanıcının yenileme jetonuyla bir GoogleAdsClient başlatır:
GoogleAdsConfig config = new GoogleAdsConfig()
{
LoginCustomerId = userSession.LoginCustomerId,
OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
OAuth2RefreshToken = userSession.RefreshToken
};
GoogleAdsClient client = new GoogleAdsClient(config);
Google.Ads.GoogleAds v27.0.0 sürümünden itibaren, Credentials özelliğini kullanarak önceden yapılandırılmış bir ICredential veya GoogleCredential nesnesini doğrudan GoogleAdsConfig içine de ekleyebilirsiniz.
Daha fazla bilgi edinmek için çok kullanıcılı kimlik doğrulama iş akışı kılavuzuna bakın. .NET istemci kitaplığı, referans olarak kullanabileceğiniz iki kod örneği içerir:
AuthenticateInAspNetCoreApplicationkod örneği, kullanıcıların Google Ads hesaplarını onlar adına yönetmek için çalışma zamanında kullanıcı kimlik doğrulaması alan bir web uygulamasının nasıl oluşturulacağını gösterir. Uygulama, kullanıcının Google Ads hesabındaki kampanyaları almak için kullanıcının OAuth 2.0 kimlik bilgilerini kullanır.GenerateUserCredentialskomut satırı kod örneği, kullanıcıların Google Ads hesaplarını onlar adına yönetmek için çalışma zamanında kullanıcı kimlik doğrulamasının nasıl alınacağını gösterir. Kullanıcı kimlik doğrulaması gerektiren masaüstü uygulamaları oluşturmak için bu kod örneğini referans olarak kullanabilirsiniz.
Kullanıcım birden fazla hesap yönetiyorsa ne olur?
Kullanıcıların, hesaplara doğrudan erişim veya Google Ads yönetici hesabı aracılığıyla birden fazla Google Ads hesabını yönetmesi yaygın bir durumdur. .NET istemci kitaplığı, bu tür durumların nasıl ele alınacağını gösteren aşağıdaki kod örneklerini sağlar:
GetAccountHierarchykod örneği, bir Google Ads yönetici hesabındaki tüm hesapların listesinin nasıl alınacağını gösterir.ListAccessibleCustomerskod örneği, bir kullanıcının doğrudan erişebildiği tüm hesapların listesinin nasıl alınacağını gösterir. Bu hesaplar daha sonraLoginCustomerIdayarı için geçerli değerler olarak kullanılabilir.
Uygulama Varsayılan Kimlik Bilgileri
.NET istemci kitaplığı (v24.1.0 ve sonraki sürümler) Uygulama Varsayılan Kimlik Bilgileri ile kimlik doğrulamayı da destekler.
Bu, özellikle yerel geliştirme veya farklı Google API'leri için geliştirme yaparken kullanışlıdır. Gerekli OAuth 2.0 kapsamlarına erişebildikleri sürece aynı kimlik bilgilerini yeniden kullanabilirsiniz.
Google Ads API için Uygulama Varsayılan Kimlik Bilgilerinizin https://www.googleapis.com/auth/adwords OAuth 2.0 kapsamına erişebildiğinden emin olun.
Uygulama Varsayılan Kimlik Bilgileri'ni kullanmak için GoogleAdsConfig dosyanızda UseApplicationDefaultCredentials seçeneğini true olarak ayarlayın (veya config.LoadFromEnvironmentVariables() ile yapılandırma yüklerken USE_APPLICATION_DEFAULT_CREDENTIALS=true ortam değişkenini ayarlayın):
GoogleAdsConfig config = new GoogleAdsConfig()
{
UseApplicationDefaultCredentials = true,
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);
.NET istemci kitaplığını yapılandırmak için kullanabileceğiniz seçenekler hakkında daha fazla bilgi edinmek istiyorsanız yapılandırma sayfasını inceleyin.