google ads api を使用するには、広告アカウントの設定からGCPの登録、アクセストークンの取得など下準備がいろいろとある。
それは以下を参照して、突破するとして、その後どのようにAPIを使用するか。
参考
https://qiita.com/navyracooon/items/b1da436318876df50798
APIを使用する方法は2種類ある。
APIに直接HTTPで送信する。もしくは、
Googleが作成した、簡易的にAPIを使用できるクライアントライブラリを使う方法である。
こちらは、githubやcomposerなどからライブラリをインストールして、gRPCの拡張機能もインストールする必要がある。
HTTPで直接送信する場合も、厄介なのがGoogle独自のクエリ言語(Google Ads Query Language(GAQL))を使っている。
これを参考にするためにライブラリをインストールしてexampleフォルダ内を参照するのもよい。
参考
https://cloud.google.com/php/grpc?hl=ja#php-implementation
windowsでphp8.2以降の環境の場合、現時点(2024年2月)で拡張機能のライブラリ grpc.dllがphp8.1までのものしかないため、自分でライブラリをビルドするか、HTTPで直接送信するしかない。
参考
https://cloud.google.com/php/docs/supported-php-versions?hl=ja
ちなみに、UNIX系はコマンドを打てば、拡張機能をインストールできる。
以下ビルド方法を書いておくが、成功しなかったので、参考まで。
PHPでgRPCをソースからビルドする方法
以下参照のこと。
参考
https://grpc.io/docs/languages/php/quickstart/
1.gRPCのリポジトリをクローン:
git clone --recurse-submodules -b v1.62.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc
このバージョンが高すぎてもダメかも。
2.クイックスタートの例のディレクトリに移動:
cd grpc/examples/php
3.gRPCのComposerパッケージをインストール:
./greeter_proto_gen.sh composer install
ここでエラーが出る。
makeコマンドがないとか。greeter_proto_gen.shがないとか。。。
調べて以下のようなエラーも出た。
bazel-bin/external/com_google_protobuf/protoc: No such file or directory
参考
https://github.com/grpc/grpc/issues/31408
4.gRPCサービスを更新:
例えば、
examples/protos/helloworld.proto
を編集して新しいSayHelloAgain
メソッドを追加します。
5.gRPCコードを再生成:
grpcのルートディレクトリから以下のコマンドを実行:
protoc --proto_path=examples/protos \\ --php_out=examples/php \\ --grpc_out=examples/php \\ --plugin=protoc-gen-grpc=bins/opt/grpc_php_plugin \\ ./examples/protos/helloworld.proto
以上の手順で、PHP 8.2用のgRPCのDLLをソースからビルドすることができるとのこと。
このあと、protobufも必要になる。
grpcに対応するprotobufのバージョンは以下を参照
参考
https://chromium.googlesource.com/external/github.com/grpc/grpc/+/HEAD/src/php