LoginSignup
0
0

googleads/googleads-php-lib でサンプルが動かなくて悩んでるあなたへ

Last updated at Posted at 2023-12-11

Googleのドキュメントを読んで簡単そうだと思ったら要注意。必ず罠があります。Googleのあくらつなライフハック。

ステップ2まではUIがアップデートされているので説明文と画面の乖離があって若干わかりづらいですが、まあ大丈夫。jsonファイルのダウンロードまでがんばってください。

次、ステップ3ではやらなければいけないことがヌケています。

image.png

「サービスアカウントユーザーを追加」

を押して、ユーザー追加をしてください。メールアドレスはさっきダウンロードしたサービスアカウントjsonのclient_emailをメールアドレスとして入力します。役割は「管理者」です。

$ composer require googleads/googleads-php-lib

composerでライブラリをインストールします。が、このとき

Installing dependencies from lock file (including require-dev) 
Package operations: 1 install, 0 updates, 0 removals
- Installing googleads/googleads-php-lib (10.1.0): Extracting archive

バージョンが10.1.0といった明らかに古い(github上では最新バージョンは63)場合、このままではこれに続くサンプルプログラムは動作しません。

error: [Error] Class "Google\AdsApi\Common\OAuth2TokenBuilder" not found

うむ。

composerで強制的に最新を入れろと指示をすると

Problem 1
- Root composer.json requires googleads/googleads-php-lib ^63.0 -> satisfiable by googleads/googleads-php-lib[63.0.0].
- googleads/googleads-php-lib 63.0.0 requires ext-soap * -> it is missing from your system. Install or enable PHP's soap extension.

soap!
こいつのせいか。というわけでインストールします。dockerなのでDockerfileに記述してbuildします。
参考:https://stackoverflow.com/questions/50121641/enable-soap-for-php-in-docker-container

docker-php-ext-install soap

libxml2-devも必要なので適宜加えてbuildしなおします。
終わったら、composerでライブラリをインストールしなおしましょう。ちゃんと最新版が入ります。
そしらた満を持してサンプルを動作させましょう。

[2023-**-**T16:37:08.951082+09:00] DFP_SOAP.INFO: networkCode=************ service=NetworkService method=getCurrentNetwork responseTime=599 requestId=************************* server=ads.google.com isFault=0 faultMessage=
Network with code ********** and display name '**********' was found.

動いた!
DFPはSOAPで動く。俺憶えたばい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0