🍥
【沼】Google広告 CAPI実装しました
Google広告をCAPIで実装しました。
タグアンチなので、タグは入れてません。
しかし、Google広告のドキュメントを見ると、タグ+拡張コンバージョンでCAPIを利用する方式が推奨されているので、、王道の実装ではないです、参考にする際はご注意ください!
実装時のポイントを備忘録的にメモしておきます。詳しいことは別で書くかも。
開発環境
- Docker: ruby:3.3.5-alpine3.20
- backend: Ruby on Rails
- frontend: Nuxt3
Upload Click Conversions
- オフラインコンバージョンで主に利用される、Upload Click Conversionsを実行して、コンバージョン通知する
- オフラインコンバージョンとは、電話や店舗訪問などで発生したコンバージョンのこと
- タグでは計測できないので、手動でコンバージョンを通知するイメージ
RESTAPI
- Rubyのgemが用意されていたが、環境要因で利用できなかった
- google-ads-googleads
- google-protobuf が動かない。gRPC通信を利用しており、DockerのAlpineイメージでは動かなかった。
- Dockerのイメージ変更なども考えたが、既存イメージの変更は影響範囲が大きいのでやめた。
- 代替としてREST APIを利用
- customers.uploadClickConversions
- 普通にREST APIなので、パラメータ設定して、POSTすればいい
APIの認証
-
AuthToken2.0 のとおりにやって、ユーザー認証
- App Type: Desktop App
- 複数ユーザーで使わないため
- クライアントID/シークレット/リフレッシュトークン取得 を参照
- App Type: Desktop App
-
- GoogleAdAPIを利用するためのトークン
- 管理者権限のあるアカウントが必要だった
- 依頼したので詳細は不明
パラメータ
- gclid
- トラッキング用のID
- wbraid / gbraid
- トラッキング用のIDその2。iOS14以降だと、gclidの代わりにこれらが連携される。wbraidはweb用/gbraidはアプリ用。
- Google 広告で付与され始めたパラメータ「wbraid」について
- ※gclidとwbraid/gbraidを同時に指定するとエラーになる
- ※wbraidとuserIdentifiersを同時に送ったらエラーになる
- partialFailure
- trueにすると、一部失敗しても、成功分はデータ作成する
- jobId
- なしでOK。なかったら向こうで勝手にふってくれる
- conversionAction
- 管理画面で、ConversionActionの登録が必要↓↓
管理画面でのConversionActionの登録
-
customers.conversionActions.mutateで作成
- 管理画面からだと、sourceをCAPIで設定できなかったので、、、コンバージョンタイプ:
UPLOAD_CLICKS
が指定し、API経由で作成
"https://googleads.googleapis.com/v19/customers/xxxxxxx/conversionActions:mutate" \ -d '{ "operations": [ { "create": { "name": "sign_up", "type": "UPLOAD_CLICKS", "category": "SIGNUP", "status": "ENABLED", } } ] }'
- 結局作成されたConversionActionを管理画面から見ると、source: Website (Import from clicks) になっていたので、別に管理画面から作成で良かったかもしれない
- 管理画面からだと、sourceをCAPIで設定できなかったので、、、コンバージョンタイプ:
まとめ
- 基本の仕様は一般的な広告と同じ
- クリックID受け取って、それをパラメータに含めて、CV通知する流れ〜
- タグアンチの人の役に立ちますように!
Discussion