使用 PHP 串接 Google Ads API

申請 Developer Token

登入 Google Ads 後台後,前往 Tools & Settings > Setup > API Center,要注意你會需要 Manager Account,並且有該帳號的 Admin 權限才能進行這項操作。申請 Developer Token 會需要填寫表單和清楚說明 Token 的使用用途和方式,如果必要時需要提供系統設計相關文件。

Developer Token 分為幾種等級,分為 Test Account Access / Basic Access / Standard Access 三種,每一種的有不同權限,相關的權限細節限制可以參考 Google Ads 的官方文件

權限等級可存取範圍每日操作次數轉每日 get 操作次數限制
Test Account Access僅測試帳號15,000 次操作1,000 次請求
Basic Access測試帳號和正式帳號15,000 次操作1,000 次請求
Standard Access測試帳號和正式帳號無限次數操作1,000 次請求
Google Ads Developer Token Access Levels

PHP extension 安裝:grpc 與 protobuf

因為 Google Ads API 是透過 Google 研發的特殊通訊協定 grpc 與 protobuf 來做溝通,有許多的 Google API 都是會需要安裝這兩個擴充,詳細的資訊可以查看 Google 官方文件。我們可以透過以下兩行指令進行安裝

sudo pecl install grpc
sudo pecl install protobuf

Google API Console 建立 OAuth Client

路徑 Google Cloud APIs & Services > Credentials > 「+ CREATE CREDENTIALS」> OAuth client ID。如果還沒設定 OAuth consent screen 的話,系統會要求你先進行設定後才能完成這個步驟。

使用 Google Ads PHP 提供的範例進行帳號驗證

可以到 github 上 clone google ads php 專案後,透過以下方式進行驗證,在過程中他會詢問你上個步驟 OAuth Client 中的 Client ID 與 Client Secret,最終會產出一個驗證用的 URL。要記得要將產生出的網址中的 Redirect URL 在 Google API Console 內加入到 Redirect URL 清單,通常預設會是 http://127.0.0.1:56800 ,但可能會有所改變。

php example/Authenication/GenerateUserCredentials.php

我們可以依據指示將產生出的 Refresh Token 資訊記錄下來,用於下一個步驟。

設定 adsapi_php.ini 檔案

Google Ads API 預設會使用放置於「家目錄」底下的「 adsapi_php.ini 」檔案作為權限驗證。在這個檔案中會需要放入前述的 Developer Token、Customer Account ID 以及 OAuth 的 Client ID、Client Secret 和 Refresh Token。

[GOOGLE_ADS]
developerToken = "{DEVELOPER_TOKEN}"

loginCustomerId = "{CUSTOMER_ID}"

[OAUTH2]
clientId = "{CLIENT_ID}"
clientSecret = "{CLIENT_SECRET}"
refreshToken = "{REFRESH_TOKEN}"

實際呼叫 Google Ads API

完成前面的設定後,我們可以實際呼叫看看 Google Ads API。Google 官方有提供相當多的範例,可以直接在 Github 中找到。

php examples/BasicOperations/GetCampaigns.php --customerId <YOUR_CUSTOMER_ID>

參考文件

Google Ads API Get Started:https://developers.google.com/google-ads/api/docs/start

OAuth Desktop and Web Application Flows:https://developers.google.com/google-ads/api/docs/client-libs/php/oauth-web