予約

予約すると、キャンペーンを定額費用で計画し購入することができるため、最適化されたリーチと管理された広告フリークエンシーが提供され、同時にキャンペーンのパフォーマンスを予測しやすくなります。従来のテレビ広告を購入する方法と似ています。これは特化された詳細オプションであり、ほとんどの広告主は、自分の広告を一定数のアカウントセンター内アカウントに確実にリーチさせたい場合にのみ使用します。

予約は、広告タイプやデバイスを問わず機能します。Metaでは、Cookieではなく実際の利用者をベースにターゲット設定するため、デバイスを問わずリーチをより正確に予測し、フリークエンシーを管理できます。

制限

  • 特定の広告アカウントのみが利用可能です。広告アカウントのCAN_USE_REACH_AND_FREQUENCYパラメーターをチェックしてください。
  • 広告セットのstop_timeは、予測から180日以内である必要があります。
  • アカウントには、国ごとの制限もあります。https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>?fields=rf_specへのGET API呼び出しでチェックしてください。
  • target_specには、一度に1つの国のみ設定します。
  • user_osには、iOS_ver_2.0_and_aboveのようなiOSの最小バージョンはありません。
  • 予約キャンペーンを作成またはアップデートする際、ライフタイムや1日の予算、ライフタイムや1日のインプレッションの制限、フリークエンシーキャップや外部入札、PacingTypeフィールドを設定することはできません。

適用される制限については、rf_specを検索してください。

名前 説明

countries

配列

予約に対応している国

min_campaign_duration

オブジェクト

サポートされている国ごとの、キャンペーンの最短日数

max_campaign_duration

オブジェクト

サポートされている国ごとの、キャンペーンの最長日数

max_days_to_finish

オブジェクト

サポートされている国ごとの、予測を作成した時点における、キャンペーンを継続できる日数

min_reach_limits

オブジェクト

サポートされている国ごとの、アカウントセンター内アカウントの最小リーチ数

結果は次のようになります。

{
  "rf_spec": {
    "min_reach_limits": {
      "US": 1000000,
      "CA": 1000000,
    },
    "countries": [
      "US",
      "CA",
    ],
    "min_campaign_duration": {
      "US": 3,
      "CA": 3,
    },
    "max_campaign_duration": {
      "US": 30,
      "CA": 30,
    },
    "max_days_to_finish": {
      "US": 56,
      "CA": 56,
    }
  }
}

予測を立てる

予測には、特定のリーチ、フリークエンシー、オーディエンス、予算に基づいて、広告が日付範囲内にリーチ可能なアカウントセンター内アカウントの数が含まれます。予約の推定により、キャンペーンの通算結果をシミュレーションすることができます。この予測は、目的、予算、オーディエンス、フォーマットと配置、ブランドの安全性、パフォーマンスの目標、フリークエンシーコントロールの設定に基づいて調整されます。

予約後も予約キャンペーンを編集できますが、キャンペーンの開始後は、広告クリエイティブの切り替え以外の編集や一時停止は行えません。広告クリエイティブのみを変更した場合、予測は変動しません。キャンペーンを削除してキャンペーンのキャンセルと停止を行えますが、キャンペーンの再予約が必要になります。その場合、キャンペーン結果に関する、新しいCPMと予測を受け取ることがあります。実際に実施するキャンペーンのみ登録するようにしてください。**テストの場合、最小サイズと最短期間に予約を制限してください。テスト用のキャンペーンは、Facebookで予約される実際の広告インベントリーであるため、予約を必ずキャンセルしてください。

制限

予測には以下のようなデフォルトの制限があります。

  • ターゲットオーディエンスの最小規模は、アカウントセンター内アカウント30万件。
  • 最小リーチは、アカウントセンター内アカウント20万件。
  • 広告セットの実施期間は1日~90日以内(キャンペーン期間に含まれる日すべてが日数として計算されます。例えば、キャンペーンが1日目の午後12:00に開始し、2日目の午前10:00に終了する場合、実際の期間は24時間よりも短いとはいえ、キャンペーンの実施期間は2日間と見なされます)
  • 広告セットの停止は、予測から180日以内。
  • キャンペーンの終了時間は、広告アカウントが属するタイムゾーンにおける最終日の午前6時より後。

予測を読み取る

詳細は、フィールドを指定してください。あるアカウントのすべてのreachfrequencypredictionを見るには、https://graph.facebook.com/{API_VERSION}/act_{AD_ACCOUNT_ID}/reachfrequencypredictions?fields={COMMA_SEPERATED_FIELD_LIST}に対するHTTP GETを発行してください。

reachfrequencyprediction IDに基づくすべてのreachfrequencypredictionにリーチするには、対象となるフィールドを次のように指定したHTTP GETを発行します: https://graph.facebook.com/{API_VERSION}/{RF_PREDICTION_ID}?fields={COMMA_SEPERATED_FIELD_LIST}

デフォルトでは、MetaはIDを返します。フィールドの詳細については、予約の予測、読み取りをご覧ください。

応答ステータスコード

reachfrequencypredictionにおける可能性のあるstatusの結果が表示されます。該当する場合、最初の制限が表示されますが、今後、広告アカウントや国によって異なる場合があります。

コード ステータス 説明

1

SUCCESS

予測が完了しました

2

PENDING

予測を作成中です

3

FAIL

リーチできないオーディエンスです。リーチまたは予算が多すぎます

4

FAIL

予測の設定が無効です(期間など)

5

FAIL

targeting_specが無効です

6

FAIL

指定したリーチに対する予算または入札価格が低すぎます

7

FAIL

広告セットの期間が短すぎます

8

FAIL

広告セットの期間が長すぎます

9

FAIL

広告セットの終了日までの期間が長すぎます

10

FAIL

フリークエンシーキャップが指定されていません

11

FAIL

広告の配置がサポートされていません(右側広告枠とフィードの混合など)

12

FAIL

広告セット期間に問題があります(開始時間か終了時間またはその両方): 開始時間が過去、午前0時以外、丸1日でない。終了時間が過去、開始時間から90日を超えている、午前6時以前になっている。

13

FAIL

ターゲットに設定した国が、現時点ではサポートされていません

14

FAIL

広告セット期間にブラックアウトデーが含まれています。

15

FAIL

インベントリーが不足しており、予約できません。「予測の予約」をご覧ください。

16

FAIL

アカウントに必要な最小リーチ数に達していません。「アカウント取得の制限」をご覧ください。

17

FAIL

この予測で可能な実際のリーチが、ターゲットの国の最小リーチより少なくなっています。通常、ほとんどの国で20万人です。

18

FAIL

提供されたデイパーティングスケジュールが無効です。

19

FAIL

ターゲットのCPMが達成不可能です。

20

FAIL

フリークエンシーキャップがブレンド配信には低すぎます。

21

FAIL

広告インベントリーが大幅に変更されたため、正しい予測ができません。

23

FAIL

フリークエンシーキャップのインターバルがターゲットの国でサポートされていません。

24

FAIL

アカウントまたはキャンペーングループで設定されたホールドアウトリフト調査広告セットが予約の予測と一致しません。

25

FAIL

フリークエンシーキャップを、キャンペーン実施日数を超えた値にすることはできません。

26

FAILURE_EMPTY_AUDIENCE

選択されたオーディエンスが空であり使用できません。

27

FAIL

掲載中のキャンペーンは変更できません。

28

FAIL

広告掲載の発注で作成された掲載中のキャンペーンは変更できません。

29

FAIL

配信中のキャンペーンは時間的制約のため変更できません。

30

FAIL

配信中の予約広告セットを編集するには、予算を現在の消化金額より高く設定してください。

31

FAIL

アカウントまたはキャンペーングループのリフト調査が、キャンペーン開始後に開始されます。

32

FAIL

アカウントまたはキャンペーングループのリフト調査が、キャンペーン終了前に終了します。

35

FAIL

予約キャンペーンの開始時刻を過去の時刻に設定することはできません。

36

FAIL

予約広告セットの期間が1日より長く、キャンペーンの開始/終了時間が有効であることを確認してください。

37

FAIL

この目的は、予約購入タイプのAudience Networkではサポートされていません。

39

FAIL

選択された配置の組み合わせは、予約購入の場合は使用できません。

40

FAIL

特定のモバイルOSバージョンは予約購入タイプの対象にはなりません。

41

FAIL

予約購入タイプではつながりの友達は対象になりません。

42

FAIL

Audience Networkが唯一の配置に選択されている場合、予約キャンペーンを実施できません。追加の配置として、FacebookフィードまたはInstagramフィードのいずれかを含むAudience Networkの配置を選択してください。

44

FAIL

予約はFacebookストーリーズに対応していません。

45

FAIL

Facebookストーリーズを配置として使用するには、FacebookフィードまたはInstagramストーリーズのいずれかを選択してください。

50

FAIL

選択された配置の組み合わせは、予約購入の場合は使用できません。予約IO購入の目的は、動画の再生数アップであることを確認してください。それ以外の場合、Facebookインストリームを使用するには、Facebookフィードの配置を選択してください。

53

FAIL

インストリーム動画の配置は、米国、英国、オーストラリア、ニュージーランド、アイルランド、タイ、メキシコ、ペルー、フランス、ドイツ、アルゼンチン、コロンビア、スペイン、チリ、エクアドル、ドミニカ共和国、グアテマラ、ボリビア、ホンジュラス、エルサルバドル、ノルウェー、スウェーデン、オランダ、ベルギー、ポーランド、ポルトガル、デンマーク、インド、マレーシア、フィリピン、インドネシア、ベトナムのオーディエンスのみが利用できます。続行するには、それらの国の人々のみが含まれるようにオーディエンスを編集してください。

60

FAIL

Facebook Marketplaceを使用するには、Facebookフィードの配置を選択してください。

66

FAIL

Facebook右側広告枠の配置を他の配置と組み合わせることはできません。

69

FAIL

Instagramの[発見]セクションに広告を表示したい場合は、配置としてInstagramフィードを選択する必要もあります。

100+

FATAL

システムエラーです。ユーザーの過失ではありません。再試行してください。

予測を使用する

予測IDとデータをインプットとして提供し、予約IDとして機能する新しいIDを作成します。次に、この予約IDを広告セットに結び付けます。予約を作成すると他者がインベントリーを使用できなくなるので、IDの有効期限が切れる前に結び付ける必要があります。

予約が成功した場合、一時的にインベントリーが予約されます。予約の後、広告を広告セットに割り当てるための時間が1時間あります。

予約リクエストの時間制限を超えると、次のエラーコードとメッセージが表示されます: 613: Calls to this API have exceeded the rate limit (このAPIの呼び出しがレート制限を超えました)

予約する

広告セットの予測を予約して、価格を固定し、予測リーチを取得します。actionreserveを指定して、設定時刻のreachfrequencypredictionで識別されるオーディエンスを予約します。1つの予測IDを使用して、複数の予約を作成できます。以下はその例です。

curl \
-F 'action=reserve' \
-F 'rf_prediction_id=<RF_PREDICTION_ID>' \
-F 'access_token=<ACCESS_TOKEN>' \
'https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/reachfrequencypredictions'
 
// Response 
{"id":9876543210"}

予測に基づいてインベントリーを予約するには、https://graph.facebook.com/{API_VERSION}/act_{AD_ACCOUNT_ID}/reachfrequencypredictionsへのPOST API呼び出しを行います。

reachbudgetimpressionについては、予測リーチ/予算のオリジナルのタプルではなく、curve_budget_reachの特定のポイントで予測を予約できます。次のフィールドを使用します。

名前 説明

rf_prediction_id

整数

必須。

reachfrequencyprediction ID

action

文字列

予約とキャンセルの場合は必須。

オプションは次のとおりです。

  • reserve - 前の予測でインベントリーを予約する
  • cancel - 予約された予測をキャンセルする

rf_prediction_id_to_release

整数

任意。

予約された予測IDまたは予約ID。新しい予約によって予約済みのオーディエンスが解除され、新しい予約に使用されます。「予約されたオーディエンスの再利用」を参照

rf_prediction_id_to_share

整数

任意。

事前に作成された予測のID。新しい予測では、指定した予測に基づくオーディエンスを使用します。


注:rf_prediction_id_to_shareには有効な予測IDを設定して、TRAFFICの目的か、POST_ENGAGEMENTLINK_CLICKSの最適化を使用する必要があります。詳しくは、更新履歴をご覧ください。

reach

整数

任意。これを指定する場合、budgetimpressionも指定してください。

curve_budget_reach上のそのポイントにおけるreachbudgetimpressionを指定します。この値はオーバーライド可能です。

budget

整数

任意。これを指定する場合、reachimpressionも指定してください。

curve_budget_reach上のそのポイントにおけるreachbudgetimpressionを指定します。この値はオーバーライド可能です。

impression

整数

任意。これを指定する場合、reachbudgetも指定してください。

この値はオーバーライド可能です。オーバーライドするには、curve_budget_reach上の、そのポイントのreachbudgetimpressionを指定します。

Metaでは、予測を非同期的に予約します。そのため、予測のステータスをポーリングし、チェックする必要があります。予測の初期ステータスは2 (PENDING)です。完了時のステータスは1SUCCESS、または15FAIL(この予約完了のためのインベントリーが不足)です。

予約システムは変動するため、予測時と予約時の間で利用できるインベントリー数が多少異なる場合があります。変更が妥当な閾値以内であれば、Metaでは、予測時に取得した値を使用します。

広告セットに割り当てる

予測を正常に予約したら、その予測を使用して広告セットを作成します。

curl \
-F "rf_prediction_id=<RF_PREDICTION_ID>" \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/<AD_SET_ID>"

予測を正常に指定するには、広告セットが次の条件を満たしている必要があります。

  • 以下を指定しない。
  • start_time - 予測から派生
  • end_time - 予測から派生
  • targeting - 予測から派生
  • bid_amount
  • optimization_goal
  • lifetime_budgetまたはdaily_budgetのいずれか
  • アクティブな広告がなくても、広告セットに予約を指定できます。ただし、広告セットを開始する前に1つ以上のアクティブな広告が必要です。
  • 予測を新しい広告セットに結び付けるrf_prediction_idを含める必要がある。
  • buying_typeの広告キャンペーン属性がRESERVEDである

reachfrequencypredictionを広告セットに結び付けてその予測を変更することもできます。使用するreachfrequencypredictionrf_prediction_idを指定して、https://graph.facebook.com/{ad_set_id}に対するPOSTリクエストを発行します。

広告セットの制約は次のとおりです。

  • パブリッシャープラットフォームのオプション: facebookinstagram
  • Facebookの配置のオプション: feedrightcolumn
  • Instagramの配置のオプション: streamstoryexploreexplore_homereels。配置にinstagramが含まれている場合、destination_idではなくdestination_idsを使用する必要があります。destination_idsフィールドには、destination_idとして使用するFacebookページIDと、InstagramアカウントIDが含まれていなければなりません。
  • カスタムオーディエンスまたはパートナーカテゴリを使用できますが、両方の併用はできません
  • ウェブサイトカスタムオーディエンス、ファンまたは動画のエンゲージメントの除外ターゲットは許可されていません。
  • 広告セットのpromoted_objectは予測のdestination_idと一致していなければなりません。ページ投稿の場合、指定されたページIDである必要があり、アプリ広告の場合、指定されたアプリIDと一致する必要があります。
  • 標準およびスケジュール済みの広告ペーシングはサポートされますが、スピード配信はサポートされません。

予約キャンペーンは、実際に配信されたインプレッション数に応じて課金されます。キャンペーンの開始時間が過ぎても広告セットにアクティブな広告がない場合、キャンペーンは配信されず、課金されません。残りのインベントリーはMetaによって解除されますが、これを繰り返す広告アカウントにはペナルティーが科される場合があります。

Metaの予約購入タイプを使ってキャンペーンを作成した場合、予約した広告インベントリーの提示コストを支払うことに同意したと見なされます。オーディエンスの規模や広告のフリークエンシーを変更すると、コストも変更されます。キャンペーンの開始前であれば、いつでもこれらを変更できます。広告クリエイティブは、キャンペーンが開始するまで編集できます。

広告を管理する

予約広告セットには複数の広告を含められるため、いつでも広告を増やせます。広告セットがアクティブになり、その中にアクティブな広告がない場合、継続期間が3~30日間の広告セットには24時間以内に、継続期間が1~2日間の広告セットには6時間以内に1つ目の広告を作成する必要があります。作成しない場合、予約は削除されます。

予測を切り離す、広告セットに変更を加える

予約キャンペーンは、開始前であれば編集や一時停止ができます。キャンペーン開始後は、広告クリエイティブと予算の編集と、終了日の延長しか行えません。広告クリエイティブのみを変更した場合、予測は変動しません。

予算や終了日を変更した場合は、キャンペーンの新しい予測が生成され、予約の推定値に表示されます。

開始後に予約キャンペーンを一時停止することはできませんが、キャンペーンを削除することで、いつでもキャンセルできます。

開始したセットを後から一時停止または編集するには、実行中の広告セットを一時停止してから再開すると、実行中の広告セットを編集するをご覧ください。アクティブなセットを削除する方法については、「広告セット、リファレンス」をご覧ください。料金は実際に配信されたインプレッション数に基づいて発生します。

潜在的なエラーを回避するため、予約広告セットが有効なときはすべての広告を削除しないようにしてください。

アクティブになる前の広告セットに予約を割り当てた場合、予約を切り離さない限り、ほとんどの属性を変更できません。セットに対してHTTP POSTリクエストを発行し、rf_prediction_idを0に設定します。広告セットオブジェクトでは、name属性のみ変更が可能です。

予約を削除するには

curl \
-F "rf_prediction_id=0" \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/<AD_SET_ID>"

広告設定がアクティブになると、予約を切り離すことはできず、許可リストにある下記の少数の広告属性を除き、セットの属性に変更を加えることもできません。

  • name
  • creative_id
  • creative_spec
  • conversion_specs
  • tracking_specs
  • view_tags

広告セットを一時停止してから再開する

アクティブなセットを一時停止できます。「広告セット、リファレンス」をご覧ください。30分を超えて停止された広告セットの予測は保証されません。

30分を超えて停止されていた広告セットを再開するには、新しい予測が必要です。reachfrequencypredictionsに対するPOSTを発行します。「予測を立てる」および「予測を予約する」をご覧ください。リクエストで、アクティブな広告セットのexisting_campaign_idを渡し、再開する必要があります。新しい予測の作成および予約の完了後、reachfrequencypredictionを広告セットに結び付けます。そのためには、使用する予測のrf_prediction_idを指定して、https://graph.facebook.com/{ad_set_id}に対するHTTP POSTを発行します。

掲載中の広告セットを編集する

広告セット開始後に次のアップデートを実行できます。

  • 広告セットの予算とリーチを増やす、または減らす。予算とリーチは、現在の消化金額または配信リーチより多くなければなりません。
  • 広告セットの掲載期間を90日に延ばす。

以下の条件のうちいずれか1つを満たす広告セットは、編集することも一時停止することもできません。

  • 大幅に配信不足。予測の10%未満しか配信されていない。予算を超えて消化されている
  • 掲載期間が1日のみ
  • 24時間以内に終了する

配信中の広告セットを編集するには、新しい予測を取得します。「予測を立てる」および「予測を予約する」をご覧ください。リクエストで、アクティブな広告セットのexisting_campaign_idを渡し、再開する必要があります。

新しい予測の作成および予約の完了後、reachfrequencypredictionを広告セットに結び付けることができます。そのためには、使用するreachfrequencypredictionのidとしてrf_prediction_idを指定して、https://graph.facebook.com/{ad_set_id}に対するHTTP POSTリクエストを発行します。

予約済みオーディエンスを再利用する

予約をキャンセルすると、予約されたインベントリーが解除され、他の広告主が使用できるようになります。しかし、過去に予約した予測に基づくオーディエンスが使用されていない場合は、再使用できます。これにより、Facebookは追加のインベントリーを考慮に入れて予測を作成できます。既存の予約をキャンセルする必要はありません。

予約作成時にrf_prediction_id_to_shareを含めます。これは過去の予測のIDです。これにより過去の予約が無効になるため、新しく作成された予約にこのインベントリーを使用できます。

新しい予測を予約するには、追加のパラメーターrf_prediction_id_to_releaseも渡す必要があります。これは、直前の予約のIDです。

広告のローテーションとシーケンス

使用している広告セットの広告をローテーションできます。そのために広告セットから予約を削除する必要はありません。広告セットに1つ以上の広告を追加し、アクティブになるのを待ちます。ここで、最初の広告のステータスを[停止中]に変更できます。広告セットには1つ以上のアクティブな広告が必要です。

広告を順番に配信する広告のシーケンスを設定できます。まず、広告セットと広告を作成します。その後、creative_sequenceで広告セットレベルのシーケンスを指定します。この広告セットの各広告は、順番に表示されなかったり、1度表示されたり、複数回表示されたりします。

creative_sequence配列の長さがゼロの場合、シーケンスは使用していません。長さがゼロでない場合、rf_prediction_idfrequency_capと同じにすることをおすすめします。長さがfrequency_capより長い場合、配列の末尾からいくつかの広告が切り捨てられます。長さがfrequency_capより短い場合、シーケンスの先頭から繰り返すことにより、残りが再帰的に自動設定されます。結果を明確にするには、creative_sequenceの長さをfrequency_capと同じ量に設定します。

シーケンス内の各広告のステータスは、ACTIVEPENDING_REVIEWCREDIT_CARD_NEEDEDのいずれかです。シーケンス内の特定の広告は、それより前の広告がすべて配信済みである場合にのみ、利用者に配信されます。creative_sequenceに含まれていない広告は配信されません。

広告シーケンスを使用している広告セット内のすべての広告は、シーケンスに含まれているかどうかにかかわらず、一時停止、アーカイブ、削除のいずれも実行できません。

この機能は、予約広告セットの場合のみ利用可能です。つまり、その親広告キャンペーンのbuying_typeRESERVEDであり、この広告セットでrf_prediction_idが設定されている場合です。

詳しくは、広告セットのドキュメントをご覧ください。

Instagram予約

Instagram上の予測リーチについて、buying_typeRESERVEDに設定した予約キャンペーンを作成することができます。

予約を使用すると、認知度やエンゲージメントをアップするためのキャンペーンを計画して予約できるため、リーチ、広告想起リフト、ThruPlayの最適化に役立ちます。

パートナーは、広告マネージャとAPIのリーチ推定により、妥当な範囲で期待できる結果について予測できます。Facebookでは、Instagramコミュニティを最優先とし、リーチの目的達成を慎重に試みた後、時間と共に発展することを期待しています。Facebookの予約の推定に適用されるポリシーはすべて、Instagramにも適用されます。

エラーコード

コード 説明

1487583

広告がない広告セットには予約の予測を指定できません。

1487055

広告セットのステータスが無効です

1487600

広告セットがすでに予約に指定されています。他の予測を使用する場合は、null値を使用して広告セットから現在の予測を解除し、新しい予測を指定してください。

1487578

指定されたreachandfrequencyprediction IDは存在しないか、または該当アカウントに属するものではありません。

1487581

掲載開始後に予約の予測を変更することはできません。

1487594

予約広告セットに広告がありません。

1487595

予約広告セットのターゲットスペックが無効です。

1487614

広告セットの開始時間が元の予測と一致しません。

1487615

広告セットの終了時間が元の予測と一致しません。

1487616

無効な予測を広告セットに関連付けることはできません。

1487671

広告セットで別の予測に直接移行することはできません。

1487244

広告セットを更新できませんでした - 理由は応答で示されます。

1487672

広告セットに予測を指定できませんでした。

1487680

予約広告セットを使用する権限がありません。

アプリdestination_idreachfrequencypredictionを作成する。

curl \
-F 'target_spec={"geo_locations": {"countries":["US"]}, "age_max":35, "age_min":26, "genders":[2], "publisher_platforms":["facebook"], "facebook_positions":["feed"]}' \
-F 'start_time=1388534400' \
-F 'end_time=1389312000' \
-F 'frequency_cap=4' \
-F 'reach=1000000' \
-F 'budget=3000000' \
-F 'destination_id=<APP_ID>' \
-F 'prediction_mode=1' \
-F "objective=MOBILE_APP_INSTALLS" \
-F 'access_token=<ACCESS_TOKEN>' \
'https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/reachfrequencypredictions'

{"id":"67890123456"}

ページdestination_idreachfrequencypredictionを作成する。

curl \
-F 'target_spec={"geo_locations": {"countries":["US"]}, "age_max":35, "age_min":26, "genders":[2], "publisher_platforms":["facebook"], "facebook_positions":["feed"]}' \
-F 'start_time=1388534400' \
-F 'end_time=1389312000' \
-F 'frequency_cap=4' \
-F 'reach=1000000' \
-F 'budget=3000000' \
-F 'destination_id=<PAGE_ID>' \
-F 'prediction_mode=1' \
-F "objective=POST_ENGAGEMENT" \
-F 'access_token=<ACCESS_TOKEN>' \
'https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/reachfrequencypredictions'

{"id":"67890123456"}

Instagram配置でアプリdestination_idreachfrequencypredictionを作成する。

curl \
-F 'target_spec={"geo_locations": {"countries":["US"]}, "age_max":35, "age_min":26, "genders":[2], "publisher_platforms":["facebook","instagram"], "device_platforms":["mobile"]}' \
-F 'start_time=1388534400' \
-F 'end_time=1389312000' \
-F 'frequency_cap=4' \
-F 'reach=1000000' \
-F 'budget=3000000' \
-F 'destination_ids=[<APP_ID>,<INSTAGRAM_ACCOUNT_ID>]' \
-F 'prediction_mode=1' \
-F "objective=MOBILE_APP_INSTALLS" \
-F 'access_token=<ACCESS_TOKEN>' \
'https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/reachfrequencypredictions'

{"id":"67890123456"}

ステータスが2以外になるまで、HTTP GETリクエストで次のエンドポイントをポーリングしてステータスを取得する。

https://graph.facebook.com/67890123456?fields=status

ステータスが1(成功)であれば、これを広告セットに結び付けることも予約することもできます。

予測の予約

curl \
-F 'action=reserve' \
-F 'rf_prediction_id=<RF_PREDICTION_ID>' \
-F 'access_token=<ACCESS_TOKEN>' \
'https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/reachfrequencypredictions'
 
{"id":"9876543210"}

ステータスが2以外になるまで、HTTP GETリクエストで次のエンドポイントをポーリングしてステータスを取得する。

https://graph.facebook.com/<API_VERSION>/<PREDICTION_ID>?fields=status

ステータスが1(成功)であれば、これを広告セットに結び付けることができます。キャンペーン、広告セット、クリエイティブ、広告を作成し、広告セットに予約を指定してキャンペーン構造を設定しましょう。

広告キャンペーンを作成する

curl \
-F "name=Test" \
-F "buying_type=RESERVED" \
-F "status=ACTIVE" \
-F "objective=POST_ENGAGEMENT" \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/campaigns

{"id":"1122334455"}

広告セットを作成する

curl  \
-F "name=TestReachSet" \
-F "status=1" \
-F "campaign_id=<CAMPAIGN_ID>" \
-F "rf_prediction_id=<RF_PREDICTION_ID>" \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adsets"

{"id":"09876543"}

広告クリエイティブを生成する

curl \
-F "name=sample creative" \
-F "type=1" \
-F "title=hello world" \
-F "body=hi i'm an ad" \
-F "link_url="https://www.facebook.com/" \
-F "image_hash=4aca812b4eadb72818a2c4124abd121a" \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives"

{"id":"1323123123123"}

広告を作成する

// Create an ad
curl \
-F "name=my ad" \
-F "adset_id=<AD_SET_ID>" \
-F "creative={'creative_id':<CREATIVE_ID>}" \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ads"

{"id":"3213213123"}

広告セットに新しい予測を割り当てる

curl \
-F "rf_prediction_id=<RF_PREDICTION_ID>" \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/<AD_SET_ID>"