Kimlik doğrulama ve yetkilendirme

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ş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 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 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ışı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ı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.
  2. Kullanıcı, uygulamanızın tüm Google Ads hesaplarını kendi adına yönetmesine yetki vermek için gcloud gibi bir komut satırı aracı veya GenerateUserCredentials kod ö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ılı kimlik doğrulama iş akışı kılavuzuna 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 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 için iki kod örneği içerir:

  1. AuthenticateInAspNetCoreApplication 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ı 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.
  2. GenerateUserCredentials komut 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şerek veya bir Google Ads yönetici hesabı üzerinden 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:

  1. GetAccountHierarchy kod örneği, bir Google Ads yönetici hesabındaki tüm hesapların listesinin nasıl alınacağını gösterir.
  2. ListAccessibleCustomers kod ö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 sonra LoginCustomerId ayarı 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 yararlı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 yapılandırmayı config.LoadFromEnvironmentVariables() ile 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 kullanılabilen seçenekler hakkında daha fazla bilgi edinmek için yapılandırma sayfasına bakın.