Authentication

Seperti Google API lainnya, Google Ads API menggunakan protokol OAuth 2.0 untuk autentikasi dan otorisasi. OAuth 2.0 memungkinkan aplikasi klien Google Ads API Anda mengakses akun Google Ads pengguna tanpa harus menangani atau menyimpan info login pengguna.

Memahami model akses Google Ads

Untuk menggunakan Google Ads API secara efektif, pahami cara kerja model akses Google Ads. Lihat panduan model akses Google Ads.

Alur kerja OAuth

Ada tiga alur kerja umum yang digunakan saat bekerja dengan Google Ads API.

Alur akun layanan

Ini adalah alur kerja yang direkomendasikan jika alur kerja Anda tidak memerlukan interaksi manusia. Alur kerja ini memerlukan langkah konfigurasi, di mana pengguna menambahkan akun layanan ke akun Google Ads-nya. Aplikasi kemudian dapat menggunakan kredensial akun layanan untuk mengelola akun Google Ads pengguna.

Library PHP dapat dikonfigurasi sebagai berikut:

$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();

Lihat panduan alur kerja akun layanan untuk mempelajari lebih lanjut.

Alur autentikasi pengguna tunggal

Alur kerja ini dapat digunakan jika Anda tidak dapat menggunakan akun layanan. Alur kerja ini memerlukan dua langkah konfigurasi:

  1. Memberi satu pengguna akses ke semua akun yang akan dikelola menggunakan Google Ads API. Pendekatan umum adalah memberi pengguna akses ke akun pengelola Google Ads API, dan menautkan semua akun Google Ads di akun pengelola tersebut.
  2. Pengguna tersebut kemudian menjalankan alat command line seperti GenerateUserCredentials untuk mengizinkan aplikasi Anda mengelola semua akun Google Ads miliknya atas nama dirinya.

Library dapat diinisialisasi menggunakan kredensial OAuth 2.0 pengguna sebagai berikut:

$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();

Lihat panduan alur kerja autentikasi pengguna tunggal untuk mempelajari lebih lanjut.

Alur autentikasi multi-pengguna

Ini adalah alur kerja yang direkomendasikan jika aplikasi Anda memungkinkan pengguna login dan mengizinkan aplikasi Anda untuk mengelola akun Google Ads mereka atas nama mereka. Aplikasi Anda secara dinamis membuat dan mengelola kredensial pengguna OAuth 2.0 untuk setiap sesi pengguna yang diautentikasi. Library dapat diinisialisasi menggunakan kredensial pengguna yang login sebagai berikut:

// 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();

Lihat panduan alur kerja autentikasi multi-pengguna untuk mempelajari lebih lanjut.

Kredensial Default Aplikasi

Library klien PHP juga mendukung autentikasi dengan Kredensial Default Aplikasi (ADC). Jika kredensial mode Aplikasi (clientId, clientSecret, refreshToken) maupun mode Akun layanan (jsonKeyFilePath) tidak disetel di OAuth2TokenBuilder, panggilan build() akan otomatis melakukan penggantian ke Kredensial Default Aplikasi:

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

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

Mengelola beberapa akun

Pengguna biasanya mengelola lebih dari satu akun Google Ads, baik melalui akses langsung ke akun, atau melalui akun pengelola Google Ads. Library klien PHP menyediakan contoh kode berikut yang mengilustrasikan cara menangani kasus tersebut:

  1. Contoh kode GetAccountHierarchy menunjukkan cara mengambil daftar semua akun dalam akun pengelola Google Ads.
  2. Contoh kode ListAccessibleCustomers menunjukkan cara mengambil daftar semua akun yang memiliki akses langsung ke pengguna. Akun ini kemudian dapat digunakan sebagai nilai yang valid untuk setelan loginCustomerId.