🍥

【沼】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を利用

APIの認証

パラメータ

  • gclid
    • トラッキング用のID
  • wbraid / gbraid
  • 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) になっていたので、別に管理画面から作成で良かったかもしれない

まとめ

  • 基本の仕様は一般的な広告と同じ
    • クリックID受け取って、それをパラメータに含めて、CV通知する流れ〜
  • タグアンチの人の役に立ちますように!

Discussion