TwitterAdsAPIを使ってデータ取得してみた

はじめに

こんにちは。くりた(hkurita)です。

今回、初めてブログを書くことになりました。

ネタは何にしようかな…と悩んだところ、先日TwitterAdsAPIを使うことがあったので、その感想やらAPIを使う上で困った&知っておくべきことなどを、記録・共有がてらブログに書いてみたいと思います。

誰向けの記事か

私は初めてSNSのAPIを触った人なので、同じような人の助けになるかなと思いブログ記事を書いています。

経験豊富な方にとっては当たり前のことしか書いていないと思いますのでご了承ください。

m(__)m

TwitterAdsAPIとは

さて、まずTwitterAdsAPIとは何ぞやというところですが、皆さんもご存じのTwitterにおける広告出稿に関する情報にアクセスできるAPIになります。

システムからAPIを使って広告管理ができてしまうというわけです。

今回はTwitterAdsAPIの中でも主にデータ取得用のAPIを利用しましたが、もちろん、データ更新系のAPIを使って広告管理をすることもできます。

新しいキャンペーンを作成したり、キャンペーンを停止してみたり、といったことですね。 business.twitter.com

ちなみに、TwitterAPIとTwitterAdsAPIは別物です。

TwitterAPIは広告出稿有無に関係なく、通常のTwitterを利用している人がやっていることができるようです。(例えば、ツイートしたりいいねしたり…)

利用するために必要なこと

ここでは詳しく話しませんが、TwitterAdsAPIを利用するためには利用申請が必要です。 利用申請の上でAPIキーやトークンを取得することが必要になります。

具体的な申請方法は「Twitter 広告 API 申請方法」などでググってみてください。

何をやろうとしたか

さて本題です。

まず私が何をやろうとしたかというと、すでに出稿している広告の情報をAPIで取得しデータレイクにため込んで、分析、レポートとして出力できるようにするということをやろうとしました。

今回はそのデータ取得部分に関してになります。

参照・利用できるツールとか

APIリファレンス

公式サイトにAPIリファレンスが公開されています。

APIにはバージョンがあり、2022年10月現在はバージョン11が最新となります。

リファレンスを見るときはバージョンを必ず確認しましょう。

バージョン毎に取得できる項目が違ったりするので、古いバージョンのリファレンスを見ていると、できるはずのことができないとなったりバグの原因になったりします。

developer.twitter.com

また、2022年10月現在は日本語ページにバージョン11のリファレンスは掲載されていません。

英語ページを見るようにしましょう。

■ ↓Twitter Ads API developer.twitter.com

■ ↓リファレンスを参照するときはバージョンに注意

開発ツール

開発ツールがいくつか提供されています。

私は以前にPostmanを使っていたこともあり、Postmanのコレクションをインポートして試しにAPIを叩いたりしていました。

GETメソッドによるデータ取得であれば実データにアクセスしても大きな問題はないですが、コレクションには更新系のPOSTメソッドもあるので、最初はサンドボックス環境を利用すると良いかもしれません。 →まだ触ったことないのでいつか使ってみたい

■ ↓PostmanのTwitter Ads APIに関するドキュメント documenter.getpostman.com

■ ↓サンドボックスについて developer.twitter.com

困った点など

さて、ここからはAPIを使う上で困った&知っておくべきことなどを書いていきます。

リファレンスに載っていない情報

まず困ったのは、APIのレスポンス情報がよくわからないこと。

APIリファレンスにレスポンス情報はサンプルのみで、項目ごとにどんな値が返されるかなど詳細は記載されていないです。

例えば、キャンペーンが有効かどうかを表すステータスがentity_statusとして取得できることはわかっても、具体的にどんな値が返ってくる可能性があるのかわからない。

そのため、特定のステータスのキャンペーンだけを取得したいとき、entity_statusをどうやって絞り込めば良いかわからないといった事態になります。

実際にAPIを叩いてわかれば良いのですが、場合によっては開発者フォーラムで質問するなどする必要がありますね。

開発者フォーラムには、日本語のTwitter Ads API カテゴリーも用意されているので英語が苦手な方はこちらも活用してみてください。

■ ↓開発者フォーラム(英語)
https://twittercommunity.com/

■ ↓開発者フォーラム(日本語のTwitter Ads API カテゴリー)
https://twittercommunity.com/c/advertiser-api/japanese/39

API実行回数制限

当たり前ですがAPI実行回数制限があります。

私のようにデータレイクにデータを貯め込むためにAPIを連発する場合などは意識することになります。

バージョンによって異なるようですが、最新バージョンではAPIのHTTPレスポンスヘッダー部分に情報を持っているのでこれで制御できます。

https://developer.twitter.com/ja/docs/twitter-ads-api/rate-limiting

広告管理画面との差

広告管理画面でできることすべてがAPIでもできる、というわけではないようなので注意が必要です。

例えば、Twitter広告にはターゲティング条件というものがあります。

アートやエンターテインメントというカテゴリをターゲティング条件として設定すれば、アートやエンターテインメントに興味がある人に広告を表示できるというものです。

APIには「オーディエンス推定API」という設定されたターゲティング条件に応じて何人にリーチできるかという推定値を取得できるAPIがあるのですが、このAPIはすべてのターゲティング条件に対応していないようです。

ターゲティング条件としてIABカテゴリーを利用していたのですが、ターゲティング条件をAPIで取得してオーディエンス推定APIに渡したところエラーとなりました。

malformedとあったので渡し方が良くないのかと思いきや、リファレンスを見たところIABカテゴリーはオーディエンス推定APIに対応していないようでした。

こればっかりは仕様なのでしょうがないですが…。

最後に

雑記ですが、以上です。

まだ開発中なので追記したいことが出てくればアップデートしたいと思います。