箱のプログラミング日記。

えんじにあ奮闘記

Google Ads API を使いたい【基礎編】

f:id:y_hakoiri:20191102121618j:plain

Google Ads API を使おうと思って色々調べたものの、そもそもGoogle広告のサービス自体を全然理解していなくて実装までに相当時間がかかってしまったのでまとめる。

Google Ads APIとは

Googleのサービスのうちの一つである「Google広告」を外部から操作するためのAPI。自前のアプリケーションから特定のGoogle広告アカウントに対してリクエストを投げ、広告キャンペーンを作成したりレポートデータを取得できたりする。

Google広告のアカウント構成

Google広告のアカウントは1つのGoogleアカウントに対して1つ作成することができる。

f:id:y_hakoiri:20210228180805p:plain

反対に言うと、Google広告アカウントを複数使用したい場合はGoogle自体のアカウントも増やして行かなければいけない(後ほど補足あり)。

MCCとは

複数のGoogle広告アカウントを束ねる管理者要素をもつアカウントのこと。

f:id:y_hakoiri:20210228175644p:plain

通常、Google広告アカウントを複数使用したい場合はGoogle自体のアカウントを複数作らなければいけないが、MCCアカウントを一つ持っていれば、Google自体のアカウントを増やさずに(同じアカウントで)複数のGoogle広告アカウントをもつことができる。

f:id:y_hakoiri:20210228181005p:plain

なので、順番的には先にMCCアカウントを作ってしまってからGoogle広告のアカウントを増やしていく方が手間が少ない。

Google Ads APIを使用するためにはこのMCCが必要なので、まだMCCアカウントを持っていない場合は作成する必要がある。ただし、すでにGoogle広告アカウントと紐付けしているGoogle自体のアカウントを新たにMCC用として使用することはできない。後からMCCを作成する場合は、まだGoogle広告と紐付けしていないGoogleアカウントが必要。

f:id:y_hakoiri:20210228175853p:plain

ちなみにGoogle Ads APIのドキュメント等では以下のように表現されている

  • MCC...マネージャーアカウント
  • 上記MCCが管理するGoogle広告アカウント...クライアントアカウント

開発者トークンを発行する

MCCが用意できたら、開発者トークンを発行する。

開発者トークンの発行方法はこちらが参考になります。

APIドキュメントには「開発者トークンはあくまでもそのMCCに対しAPIからのリクエストを開放するためのものであって、 それ自体をアカウントの特定に使うわけではない。だからこのMCCの管理下にないGoogle広告アカウントに対してもリクエストを投げることができる」...ということが書いてあり混乱するのだが、とりあえず特に理由がない限りこのMCCの管理下に全てのGoogle広告アカウントをおいておく形で問題ないと思う。

開発者トークンを申請に出す

開発者トークンは発行しただけではすぐに使えない。実運用で使うためにはGoogleによる審査が必要。

この審査がめちゃくちゃややこしくて、APIをどんな目的で使うかとか、どんなツールからリクエストを呼び出すかとか事細かに書かなければいけない。「2営業日で回答」と書いてあるものの、実際に審査を通過できるまで何往復かすることを想定しておいた方が良さそう。

申請フォーム

ちなみに、上記フォームはAdWardsのフォームのようになっているが、Google広告はもともとAdWardsが新しくなったもの。ここ以外にもAdWardsの仕様や説明を共有している箇所が多々あるのであまり気にする必要はない。

実運用でトークンを使うためには承認がおりないと使えないが、未承認の状態でもテストリクエストは走らせることができる。

テストアカウントを作成する(推奨)

未承認の開発者トークンを使ってAPIのテストをするためにはテスト用アカウントが必要。

開発者トークンの申請が降りるのを待って実運用でいきなり使うのでも問題はないが、先ほど書いた通り承認までに時間がかかるのと、実運用のアカウント(APIドキュメントでは「本番用アカウント」と表現される)のデータを意図せず更新してしまったりするリスクもあるため、検証段階ではテスト用のアカウントを用意することが推奨されている。

なお、テストアカウントはMCCとGoogle広告アカウントが最低1つずつ必要。

テストアカウントの作成はこちらから

テストにおいて用意するのはアカウントのみで、開発者トークンの発行をする必要はない。本番用MCCで発行した開発者トークンと、テスト用に作成したMCCアカウントを使用してテストを行う(ここがややこしい)。

ここでようやく「開発者トークンはあくまでもそのMCCに対しAPIからのリクエストを開放するためのものであって、 それ自体をアカウントの特定に使うわけではない。だからこのMCCの管理下にないGoogle広告アカウントに対してもリクエストを投げることができる」の意味がわかる。

要するに、テストではその開発者トークンを使ったリクエストを走らせることができるかの検証のみ行う。リクエストの反映先がテスト用アカウントになるので、本番用アカウントのデータには影響を与えない状態でAPI検証が行える。

リクエストを走らせる

ここまでで一通りAPIリクエストの受け側の準備は整ったので、次はAPIリクエストを飛ばすクライアント側の準備に取り掛かる。

一旦ここまで。。

参考

Google Ads API のサンプルを動かすまで - Qiita