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 .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ın herhangi bir kullanıcı etkileşimi gerektirmediği durumlarda 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 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ının erişmesini sağlayın. Genel bir yaklaşım, kullanıcıya bir Google Ads API yönetici hesabına erişim izni vermek ve bu yönetici hesabı altındaki tüm Google Ads hesaplarını bağlamaktır.
  2. Kullanıcı, uygulamanızın kendi adına tüm Google Ads hesaplarını yönetmesine yetki vermek için gcloud gibi bir komut satırı aracı veya GenerateUserCredentials kod örneğini çalıştırır.

Kitaplığı, kullanıcının OAuth 2.0 kimlik bilgilerini kullanarak aşağıdaki şekilde 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 tarihinden itibaren, Credentials özelliğini kullanarak önceden yapılandırılmış bir ICredential veya GoogleCredential nesnesini doğrudan GoogleAdsConfig'ye de yerleştirebilirsiniz.

Daha fazla bilgi edinmek için çok kullanıcılı kimlik doğrulama iş akışı rehberine bakın. .NET istemci kitaplığı, referans için iki kod örneği içerir:

  1. AuthenticateInAspNetCoreApplication kod örneğinde, kullanıcı kimlik doğrulama işlemini çalışma zamanında gerçekleştirerek kullanıcı adına Google Ads hesaplarını yöneten bir web uygulamasının nasıl oluşturulacağı gösterilmektedir. 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ı kodu örneği, kullanıcı kimlik doğrulamasının çalışma zamanında nasıl alınacağını göstererek kullanıcıların Google Ads hesaplarının onlar adına yönetilmesini sağlar. 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ğinde, bir Google Ads yönetici hesabı altındaki tüm hesapların listesinin nasıl alınacağı gösterilmektedir.
  2. ListAccessibleCustomers Kod ö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 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'lerine karşı geliştirme için 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 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 kullanılabilen seçenekler hakkında daha fazla bilgi edinmek için yapılandırma sayfasına bakın.