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 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ışı
İş akışını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.
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ışı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ının erişmesini sağlayın. 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.
- Bu kullanıcı daha sonra, uygulamanızın kendi adına tüm Google Ads hesaplarını yönetmesine yetki vermek için
GenerateUserCredentialsgibi 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 gibi 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, 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, 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ışı kılavuzuna 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 ayarlandığı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:
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.