Facebook Graph API v5.0 / Marketing API v5.0 がリリースされた件


数日前のことになるが、10月31日 (現地時間) に Facebook が Graph API / Marketing API / Messenger API v5.0 をリリースした

v4.0 以降、小数点以下を刻むことなく v5.0 にしてきたが、正直そこまで大きな変化はないように思う。

アップデートでの注意すべき点

Ad Volume API

今回、一番気をつけないといけない点は、2020 年中旬をめどに、各 Facebook ページごとに同時に走らせられる広告の数に上限が導入されることを踏まえ、広告アカウント単位で Facebook ページにつきいくつの広告が走っているかを取得する Ad Volume API が導入されたことだろう。

現時点では、広告アカウントまたは Facebook ページ単位で同時に走っている広告数そのものは意識する必要はない。しかし、1 年以内に上限が導入されるとなると、それを踏まえた広告設計またはプロダクト設計が必要になるのは間違いない。

今回の施策はニュースにも

We’re implementing ad limits because very high ad volume can hinder an advertiser’s performance. With too many ads running at the same time, fewer ads exit the learning phase and more budget is spent before the delivery system can optimize an ad’s performance.

と書いているとおり、多数の広告が走っていると最適化前の学習期間で想定以上の予算を消化してしまうのが理由だろう。

特定業種に関する広告の制限導入 (US のみ)

以前にも触れたことがあるが、2019 年 12 月 4 日以降、住宅関係、人材雇用、ローンなどの金融サービスについての広告キャンペーンを米国内で走らせる場合、または米国内をターゲティングして走らせる場合、Special Ad Category であることを明記した上で、かつ年齢、性別、住所 (ZIP コードを含む) などを条件としてオーディエンスを生成できなくなる。

気をつけないといけないのは、対象となるカテゴリが思った以上に広いという点だろう。ここについては別の記事で書こうと思う。

User ID

Graph API などでユーザ単位の読み書きをする際、自分自身を指す特殊な ID である me を指定するか、またはユーザ ID を指定する必要がある。Graph API v2.0 以降、ユーザ ID は Facebook 内部でのユーザ ID ではなく、App-Scoped User ID と呼ばれる Facebook App ごとに異なるユーザ ID を返すようになった。

これまではグローバルなユーザ ID でも Graph API にアクセスできたが、v5.0 以降は App-Scoped User ID でのみアクセスできるようになる

とはいえこれが問題になるケースはほとんどないかと思う。正しく Facebook ログインが実装されていればすでに App-Scoped User ID ベースになっているであろうし、アクセストークンには通常 60 日の期限がついており、期限切れまでには App-Scoped User ID ベースになっているはずだと思う。
Marketing API 関連の権限がついているアクセストークンについては期限はないものの、Marketing API 関連の権限に対して再レビューが入ったタイミングでいったんアクセストークンが無効化されているので、おそらくは問題にならないと考えている。

その他変更点など

詳細な変更点などはこちら。ここでは Graph API または Marketing API に関してある程度関係する範囲が広そうなもののみ触れる。

Marketing API

広告キャンペーンを作成する際に special_ad_category フィールドを指定しなければならなくなった。パラメータは以下 4 種類となる。

  • HOUSING
  • CREDIT
  • EMPLOYMENT
  • NONE

{広告アカウントID}/user_role が廃止された。代わりに user_tasks フィールドを参照する必要がある。

ビデオ広告では 10秒 閲覧最適化オプションが廃止された。

オーディエンス生成後に一度も使わずに 90 日が経過したか、または 30 日間ターゲティングで使われていないオーディエンスは operation_status が 450 を返すようになる。

{
  "operation_status": {
    "code": 450,
    "description": "This audience either hasn't been used in an ad for at least 30 days or was created over 90 days ago and has never been used. For this reason, your audience is out of date."
  },
  "id": "xxxxx"
}

インサイト取得で 10 秒閲覧に関するメトリクスが取得できなくなった。以降は TruPlay メトリクス (= 15 秒閲覧) を参照する必要がある。

Pages API

Facebook Pages API で一般公開されたコンテンツにアクセスする際も manage_pages 権限が必要となった。


今回の変更はバージョン番号の変化と比較すると非常に小さいものとなった。特に Graph API 本体にはインパクトのある変更点はなく、Marketing API / Messenger API / Pages API への変更のみとなる。

一方で広告関連のオブジェクトに関する上限には新たな制限が加わった。

個人的な体験になるが、5 年ほど前に 1 広告アカウントあたり数万件の広告を同時に走らせ、数日おきに更新するということをやったことがある。
数日おきに更新というのは、単純に API rate limit の観点からその程度しか更新できなかったというだけではあるが、削除済み広告も含め数万 〜 数十万の広告セットがある広告アカウントの場合、その後たとえ同時に走る広告が数十件だとしても API 呼び出しに非常に時間がかかってしまうこととなった。

上のスクリーンショットを撮るためにその広告アカウントに対して /customaudiences に GET してみたが、今でも数秒程度のタイムラグがあるし、場合によっては API 自体が 500 を返す場合がある。

Facebook 広告もある程度時間が経ってきたこともあり、今後は古い広告オブジェクトを内部的に削除したいところなのだろう。