Authentication

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 inceleyin.

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 kullanıcının Google Ads hesabını yönetmek için hizmet hesabının kimlik bilgilerini kullanabilir.

PHP kitaplığı aşağıdaki gibi yapılandırılabilir:

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withJsonKeyFilePath('INSERT_PATH_TO_JSON_KEY_FILE_HERE')
    // Optional in v32.1.0 and later (defaults to
    // 'https://www.googleapis.com/auth/adwords').
    ->withScopes('https://www.googleapis.com/auth/adwords')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

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. Bu kullanıcı daha sonra, uygulamanızın kendi adına tüm Google Ads hesaplarını yönetmesine yetki vermek için GenerateUserCredentials gibi bir komut satırı aracı çalıştırır.

Kitaplık, kullanıcının OAuth 2.0 kimlik bilgileri kullanılarak aşağıdaki şekilde başlatılabilir:

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_CLIENT_SECRET_HERE')
    ->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

Daha fazla bilgi 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ızı yetkilendirmesine izin vermesi durumunda bu iş akışını kullanmanız önerilir. Uygulamanız, kimliği doğrulanmış her kullanıcı oturumu için OAuth 2.0 kullanıcı kimlik bilgilerini dinamik olarak oluşturur ve yönetir. Kitaplık, oturum açmış kullanıcının kimlik bilgileri kullanılarak aşağıdaki şekilde başlatılabilir:

// Construct credentials dynamically per authenticated user session.
$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_CLIENT_SECRET_HERE')
    ->withRefreshToken($userRefreshToken)
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withLoginCustomerId($userLoginCustomerId)
    ->build();

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

Uygulama Varsayılan Kimlik Bilgileri

PHP istemci kitaplığı, Uygulama Varsayılan Kimlik Bilgileri (ADC) ile kimlik doğrulamayı da destekler. OAuth2TokenBuilder üzerinde ne Uygulama modu (clientId, clientSecret, refreshToken) ne de Hizmet hesabı modu (jsonKeyFilePath) kimlik bilgileri ayarlanmadığında build() çağrısı otomatik olarak Uygulama Varsayılan Kimlik Bilgileri'ne geri döner:

$oAuth2Credential = (new OAuth2TokenBuilder())->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

Birden çok hesabı yönetme

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. PHP 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.