リード獲得フォームとリード獲得広告

このドキュメントは、マーケティングAPIを使用して、グラフAPIを使ったリード獲得の広告を作成する方法を説明します。

リード獲得広告を作成して公開するには、次の手順を実行します。

  1. 広告キャンペーンを作成する
  2. 広告を広告キャンペーンにリンクする広告セットを作成する
  3. リード獲得フォームを作成する
  4. リード獲得フォームにより広告クリエイティブを作成する
  5. キャンペーンとクリエイティブを関連付けて広告を作成する
  6. 広告を公開する

開始する前に

このガイドは、Messengerプラットフォームの概要を読み、メッセージと通知の送受信に必要なコンポーネントを実装した人を対象にしています。

次のものが必要です。

ステップ1. キャンペーンを作成する

リード獲得広告の広告キャンペーンを作成するには、以下のパラメーターを使って、/act_AD_ACCOUNT_ID/campaignsエンドポイントにPOSTリクエストを送信します。

  • access_tokenをページアクセストークンに設定
  • buying_typeAUCTIONに設定
  • nameをキャンペーンの名前に設定
  • objectiveLEAD_GENERATIONに設定
  • special_ad_categoriesを、NONEまたは自分の特別な広告カテゴリに設定
  • statusPAUSEDに設定

リクエストの例

読みやすくするためにフォーマットしています。AD_ACCOUNT_IDのような太字イタリックになっている値を、実際の値に置き換えてください。
curl -X POST "https://graph.facebook.com/v19.0/act_AD_ACCOUNT_ID/campaigns" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "buying_type":"AUCTION",
           "name":"Messenger_ad_campaign_name",
           "objective":"LEAD_GENERATION",
           "special_ad_categories":["NONE"],
           "status":"PAUSED"
         }'

成功すると、アプリはキャンペーンのIDを含むJSONオブジェクトを受け取ります。次のステップで広告セットを作成する際に、このIDを使います。

{
  "id": "YOUR_CAMPAIGN_ID"
}

詳しくは、広告キャンペーンのリファレンスをご覧ください。

ステップ2. 広告セットを作成する

広告セットを作成するには、act_ad_account_id/adsetsエンドポイントに対してPOSTリクエストを送信します。このad_account_idは、Meta広告アカウントのIDです。リクエストには以下を含める必要があります。

  • access_tokenをページアクセストークンに設定
  • bid_amountを最大支払い額に設定
  • billing_eventIMPRESSIONSに設定
  • campaign_idを、ステップ1の広告キャンペーンのIDに設定
  • daily_budgetを1日の予算額に設定
  • nameを広告セットの名前に設定
  • optimization_goalLEAD_GENERATIONまたはQUALITY_LEADに設定
  • promoted_objectをビジネスのFacebookページのIDに設定
  • statusPAUSEDに設定

注: CRMデータソースを設定し、最適化の目的としてQUALITY_LEADを選択したなら、最適化の質を高めるためにpixel_idpromoted_objectに追加できます。なお、pixel_idと一緒にpixel_ruleを指定する必要はありません。

リクエストの例

読みやすくするためにフォーマットしています。AD_ACCOUNT_IDのように、太字でイタリックになっている値は、実際の値に置き換えてください。
curl -X POST "https://graph.facebook.com/v19.0/act_AD_ACCOUNT_ID/adsets"
     -H "Content-Type: application/json" 
     -d '{
           "access_token":"Your_page_access_token",
           "bid_amount":"Your_bid_amount",
           "billing_event":"IMPRESSIONS",
           "campaign_id":"Your_campaign_id",
           "daily_budget":"Your_daily_budget",
           "name:"YOUR_LEADADS_ADSET",
           "optimization_goal:LEAD_GENERATION",
           "promoted_object":"YOUR_PAGE_ID",
           "status:PAUSED"
         }'

成功すると、アプリは広告セットのIDを含む次のJSONの応答を受け取ります。

{
  "id": "YOUR_ADSET_ID"
}

詳しくは、広告セットのリファレンスをご覧ください。

ステップ3. リード獲得フォームを作成する

フォームを作成するには、次のようにパラメーターを指定して、/PAGE_ID/leadgen_formsエンドポイントに対してPOSTリクエストを送信します。

  • access_tokenをページアクセストークンに設定
  • nameをフォームの名前に設定
  • questionsを、質問のタイプを定義するオブジェクトと、keyパラメーターを使ってフォームに質問が表示される順番を定義するオブジェクトの配列に設定
    • labelパラメーターを使用したカスタム質問
    • optionsパラメーターを使用した回答のドロップダウンメニュー付きのカスタム質問

リクエストの例

読みやすくするためにフォーマットしています。太字イタリックの値を実際の値に置き換えてください。
curl -X POST "https://graph.facebook.com/v19.0/PAGE_ID/leadgen_forms" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token": "YOUR_PAGE_ACCESS_TOKEN",
           "name": "YOUR_LEADADS_FORM_NAME",
           "questions": "[
               {"type":"FULL_NAME", "key": "question1"},
               {"type":"EMAIL", "key": "question2"},
               {"type":"PHONE", "key": "question3"},
               {"type":"CUSTOM", "key": "question4" "label": "Do you like rainbows?"}
               {"type":"CUSTOM", "key": "question5" "label": "What is your favorite color?", 
                   "options": [
                       {value: "Red", key: "key1"},
                       {value: "Green", key: "key2"},
                       {value: "Blue", key: "key2"},
                   ]}
           ]"
         }'

Messengerスレッド用のフォーム

Messengerスレッドの中の広告で使うフォームには、以下のものが含まれていなければなりません。

  • questions.typeパラメーターに設定できる値は、以下のうちのいずれか1つだけです。
    • CUSTOM
    • EMAIL
    • FIRST_NAME
    • FULL_NAME
    • LAST_NAME
    • PHONE

    このリストにない値に設定されたquestions.typeを含んだフォームは、不適格となります。

  • block_display_for_non_targeted_viewerパラメーターは、falseに設定しなければなりません。これによりフォームはオープンシェアになります。

適格Messengerリード獲得フォームのリクエストの例

読みやすくするためにフォーマットしています。太字のイタリックになっている値は、実際の値に置き換えてください。
curl -X POST "https://graph.facebook.com/v19.0/PAGE_ID/leadgen_forms" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token": "page_ACCESS_TOKEN"
           "block_display_for_non_targeted_viewer": "false"
           "name": "LeadAds Form for Messenger Conversation Name"
           "questions": "[
               {"type":"FULL_NAME", "key": "question1"},
               {"type":"EMAIL", "key": "question2"},
               {"type":"PHONE", "key": "question3"},
               {"type":"CUSTOM", "key": "question4" "label": "Do you like rainbows?"}
               {"type":"CUSTOM", "key": "question5" "label": "What is your favorite color?", 
                   "options": [
                       {value: "Red", key: "key1"},
                       {value: "Green", key: "key2"},
                       {value: "Blue", key: "key2"},
                   ]}
           ]"
         }'

その他のタイプの質問

[リード獲得フォームの作成セクション]{#create-a-lead-form}に示されている典型的なタイプの質問に加えて、以下の用途に合わせてさらに特化したタイプの質問も追加できます。

  • 予約スケジューリング - 予約スケジューリングのための質問では、限られた範囲内で時間を選択できる日時指定欄が表示されます。質問の下に確認メッセージを表示することもできます。
  • 公的機関発行の本人確認書類 – 公的機関発行の本人確認書類の質問では、利用者の国に基づいて質問を表示し、入力されたIDのフォーマットを検証します。
  • 店舗検索 - 店舗検索のための質問では、入力された郵便番号を基に店舗検索セレクターが表示されます。

予約スケジューリング

予約スケジューリングのための質問では、限られた範囲内で時間を選択できる日時指定欄が表示されます。質問の下に確認メッセージを表示することもできます。

予約スケジューリングの質問を追加するには、typeパラメーターをDATE_TIMEに設定した質問オブジェクトを追加します。任意で確認メッセージをinline_contextパラメーターに追加することもできます。このメッセージは、必要に応じて詳細を確認できるよう質問フィールドのすぐ下に表示されます。

...
           "questions": "[
               ...
               {"type": "DATE_TIME", 
                "label": "Appointment time", 
                "inline_context": "We will verify and call you to confirm your appointment."
               },
...

公的機関発行の本人確認書類

公的機関発行の本人確認書類の質問では、利用者の国に基づいて質問を表示し、入力されたIDのフォーマットを検証します。この質問は次の国に関して表示できます。

  • アルゼンチン – {"type": "ID_AR_DNI"}
  • ブラジル – ID_CPF
  • チリ – ID_CL_RUT
  • コロンビア – ID_CO_CC
  • エクアドル – ID_EC_CI
  • ペルー – ID_PE_DNI

国民IDの質問を追加するには、typeパラメーターを利用者の国のタイプに設定した質問オブジェクトを追加します。

制限

  • 特定のフォームの国民IDを1つだけリクエストできます。ターゲットに設定できるのは、対応する国の利用者だけです。例えば、ペルーのDNIをリクエストする場合は、ターゲットオーディエンスをペルーに限定する必要があります。この条件を満たす広告のみが承認されます。
  • 検証では、有効な形式かどうかがチェックされます。実在の人物のIDかどうかは検証されません。
...
           "questions": "[
               ...
               {"type": "ID_AR_DNI"
               },
...

店舗検索

店舗検索のための質問では、入力された郵便番号を基に店舗検索セレクターが表示されます。

この質問を使用するには、店舗ページ構造を設定する必要があります。設定方法については、Facebookで店舗ページ構造を設定する – Metaビジネスヘルプセンターをご覧ください。

店舗検索の質問を追加するには、typeパラメーターをSTORE_LOOKUPに設定し、context_provider_typeパラメーターをLOCATION_MANAGERに設定した質問オブジェクトを追加します。

...
           "questions": "[
               ...
               {"type": "STORE_LOOKUP", 
                "label": "Which store do you want to visit?", 
                "context_provider_type": "LOCATION_MANAGER"
               },
...

フォームの詳細設定

獲得するリードの質を上げるために追加できる設定には、次のものがあります。

パフォーマンストラッキングを追加する

リードのソースをトラッキングするため、tracking_parametersフィールドをフォームに追加してください。そして、トラッキングの対象となるパラメーターをキー/値ペアのリストにして設定します。それらのパラメーターは広告には表示されませんが、それにより、フォームから生成されるリードに関するメタデータがMetaから提供されるようになります。

リクエストの例

読みやすくするためにフォーマットしています。太字のイタリックになっている値は、実際の値に置き換えてください。
...
           "name": "YOUR_LEADADS_FORM_NAME",
           "tracking_parameters": {"your_tracking_parameter_name":"your_tracking_parameter_value"},
           "questions": "[
...

高い意向の設定を追加する

デフォルトでは、リード獲得広告はリードの量を上げるように最適化されますが、獲得するリードの意向を高くするためのフォームを作成することもできます。それらのタイプのリードは、ディーラーでの試乗予約など、特定の商品やサービスに興味がある人を対象とするものです。このフォーム設定を行うと、フォーム送信フローで、フォーム送信前に自分の回答を見直して確認するためのステップが増えます。

フォームにこの確認フローを追加するには、フォーム作成時にis_optimized_for_qualityパラメーターを追加し、それをtrueに設定します。

リクエストの例

読みやすくするためにフォーマットしています。太字のイタリックになっている値は、実際の値に置き換えてください。
...
           "name": "YOUR_LEADADS_FORM_NAME",
           "is_optimized_for_quality": "true",
           "questions": "[
...

オーガニックリードをフィルターで除外する

オーガニックリードをフィルターで除外するには、フォーム作成時にblock_display_for_non_targeted_viewerパラメーターを追加し、それをtrueに設定します。

リクエストの例

読みやすくするためにフォーマットしています。太字のイタリックになっている値は、実際の値に置き換えてください。
...
           "name": "YOUR_LEADADS_FORM_NAME",
           "block_display_for_non_targeted_viewer": "true",
           "questions": "[
...

応答の例

成功すると、アプリはフォームのIDを含むJSON応答を受け取ります。広告作成時にそのIDを使います。

{
  "id": "leadgen_form_id",
}

ステップ4. 広告クリエイティブを作成する

画像とフォームを使った広告クリエイティブを作成するには、以下のパラメーターを使って/act_AD_ACCOUNT_ID/adcreativesエンドポイントにPOSTリクエストを送信します。

  • access_tokenをページアクセストークンに設定
  • 以下のパラメーターを指定したlink_dataオブジェクトを含むobject_story_spec
    • call_to_actiontypeの含まれるオブジェクトに設定。valueをリード獲得フォームIDに設定
    • descriptionをクリエイティブの説明に設定
    • image_hashを広告クリエイティブの画像のハッシュに設定
    • link_urlを該当URLに設定。自分のFacebookページに設定することはできません
    • messageを広告クリエイティブのテキストに設定
  • page_idをFacebookページIDに設定

: link_dataの作成中は、linkフィールドに関連付けられる値はhttps//fb.me/だけです。

link_data.call_to_actionパラメーターに設定できる値は、以下のうちのいずれかです。

  • APPLY_NOW
  • DOWNLOAD
  • GET_QUOTE
  • LEARN_MORE
  • SIGN_UP
  • SUBSCRIBE

リクエストの例

読みやすくするためにフォーマットしています。AD_ACCOUNT_IDのように、太字でイタリックになっている値は、実際の値に置き換えてください。
curl -X POST "https://graph.facebook.com/LATEST-API-VERSION/act_AD_ACCOUNT_ID/adcreatives" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"YOUR_PAGE_ACCESS_TOKEN",
           "object_story_spec":{ 
             "link_data": { 
               "call_to_action": {
                 "type":"SIGN_UP",
                 "value":{
                   "lead_gen_form_id":"YOUR_FORM_ID"
                 }
               }, 
               "description": "YOUR_AD_CREATIVE_DESCRIPTION", 
               "image_hash": "YOUR_IMAGE_HASH", 
               "link": "http:\/\/fb.me\/", 
               "message": "YOUR_AD_CREATIVE_MESSAGE" 
             }, 
           "page_id": "YOUR_PAGE_ID" 
         }'
  

カルーセルのリード獲得広告は同じobject_story_specを使用して作成できますが、追加のlead_gen_form_idフィールドをchild_attachmentsパラメーターで定義する必要があります。

すべての子添付ファイルに同じ<FORM_ID>だけを指定できます。

curl \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "link_data": { 
      "message": "My description", 
      "link": "http:\/\/www.google.com", 
      "caption": "WWW.EXAMPLE.COM", 
      "child_attachments": [ 
        { 
          "link": "http:\/\/www.google.com", 
          "image_hash": "<IMAGE_HASH>", 
          "call_to_action": {"type":"SIGN_UP","value":{"lead_gen_form_id":"<FORM_ID>"}} 
        }, 
        { 
          "link": "http:\/\/www.google.com", 
          "image_hash": "<IMAGE_HASH>", 
          "call_to_action": {"type":"SIGN_UP","value":{"lead_gen_form_id":"<FORM_ID>"}} 
        }, 
        { 
          "link": "http:\/\/www.google.com", 
          "image_hash": "<IMAGE_HASH>", 
          "call_to_action": {"type":"SIGN_UP","value":{"lead_gen_form_id":"<FORM_ID>"}} 
        }, 
        { 
          "link": "http:\/\/www.google.com", 
          "image_hash": "<IMAGE_HASH>", 
          "call_to_action": {"type":"SIGN_UP","value":{"lead_gen_form_id":"<FORM_ID>"}} 
        } 
      ], 
      "multi_share_optimized": true, 
      "call_to_action": {"type":"SIGN_UP","value":{"lead_gen_form_id":"<FORM_ID>"}} 
    } 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/LATEST-API-VERSION/act_<AD_ACCOUNT_ID>/adcreatives

動画を含むもの

リード獲得広告クリエイティブには、写真の代わりに動画も使用できます。まず動画を広告動画ライブラリにアップロードしてから、次のように、その動画をobject_story_specパラメーターで使用します。

curl -X POST \
  -F 'object_story_spec={
       "page_id": "<PAGE_ID>",
       "video_data": {
         "link_description": "try it out",
         "image_url": "<IMAGE_URL>",
         "video_id": "<VIDEO_ID>",
         "call_to_action": {
           "type": "SIGN_UP",
           "value": {
             "link": "http://fb.me/",
             "lead_gen_form_id": "<FORM_ID>"
           }
         }
       }
     }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

広告クリエイティブの応答の例

成功すると、アプリは広告クリエイティブのIDを含む次のJSONの応答を受け取ります。

{
  "id": "YOUR_AD_CREATIVE_ID"
}
      

広告を作成するには、広告クリエイティブと広告セットを関連付ける必要があります。広告を作成するには、/act_AD_ACCOUNT_ID/adsエンドポイントに対してPOSTリクエストを送信します。リクエストには以下を含める必要があります。

  • access_tokenをページアクセストークンに設定
  • adset_id (ステップ2)
  • creative_id (ステップ4)
  • 名前
  • ステータス

クリエイティブ広告のリクエストの例

読みやすくするためにフォーマットしています。AD_ACCOUNT_IDのように、太字でイタリックになっている値は、実際の値に置き換えてください。
curl -X POST "https://graph.facebook.com/v19.0/act_AD_ACCOUNT_ID/ads"
     -H "Content-Type: application/json" 
     -d '{
           "access_token"="YOUR_PAGE_ACCESS_TOKEN",
           "adset_id"="YOUR_AD_SET_ID",
           "creative"={ "creative_id": "YOUR_AD_CREATIVE_ID" },
           "status"="PAUSED"
         }'

成功すると、アプリは広告のIDを含む次のJSON応答を受け取ります。

{
  "id": "YOUR_AD_ID"
}

ステップ6.広告を公開する

広告マネージャに広告が存在することを確認します。右上の[レビューして公開]ボタンをクリックして公開します。キャンペーン、キャンペーンの広告セット、広告を選択します。

広告マネージャから、またはAPIを使用して、広告を公開します。APIを使用して公開するには、statusパラメーターをACTIVEに設定して、ステップ4を繰り返します。

広告がMetaによって審査され、ステータスがPENDING_REVIEWになります。承認されると、ステータスがACTIVEになり、広告が配信されます。

フォームの管理

フォームのリストを取得したり、特定のフォーム質問を取得したり、古いフォームをアーカイブしたりします。

フォームのリストを取得する

リード獲得フォームのリストを取得するには、以下のパラメーターを使って/page_id/leadgen_formsエンドポイントにGETリクエストを送信します。

  • access_tokenをページアクセストークンに設定
  • 名前やフォームIDなどの特定の情報を取得するには、fieldsをフィールドのカンマ区切りリストに設定(任意)

リクエストの例

読みやすくするためにフォーマットしています。太字のイタリックになっている値は、実際の値に置き換えてください。
curl -X GET "https://graph.facebook.com/v19.0/PAGE_ID/leadgen_forms
    ?fields=name,id
    &access_token": "YOUR_PAGE_ACCESS_TOKEN"

成功すると、アプリはフォームのリストを含むJSONの応答を受け取ります。フォームIDを使用して、フォームに関する質問を受け取ったり、フォームをアーカイブしたりすることができます。

Messengerに使用できるフォームのリストを取得する

Messengerスレッドで送信できるのは、特定の要件が含まれるフォームだけです。

対象となるリードフォームのリストを取得するには、次のようにパラメーターを指定して、/page_id/leadgen_formsエンドポイントにGETリクエストを送信します。

  • access_tokenをページアクセストークンに設定
  • fieldsis_eligible_for_in_thread_formsに設定

リクエストの例

読みやすくするためにフォーマットしています。太字のイタリックになっている値は、実際の値に置き換えてください。
curl -X GET "https://graph.facebook.com/v19.0/PAGE_ID/leadgen_forms
    ?fields=is_eligible_for_in_thread_forms
    &access_token": "YOUR_PAGE_ACCESS_TOKEN"

成功すると、アプリは対象となるフォームのIDのリストを含むJSONの応答を受け取ります。

{
  "data": [
    {
      "id": "eligible_form_1_id"
    },
    {
      "id": "eligible_form_2_id"
    }
  ],
...
}

質問のリストを取得する

特定のリード獲得フォームの質問リストを取得するには、以下のパラメーターを使って/page_id/leadgen_form_idエンドポイントにGETリクエストを送信します。

  • access_tokenをページアクセストークンに設定
  • fieldsquestionsに設定

リクエストの例

読みやすくするためにフォーマットしています。太字のイタリックになっている値は、実際の値に置き換えてください。
curl -X GET "https://graph.facebook.com/v19.0/page_id/leadgen_form_id
    ?fields=questions
    &access_token=page_access_token"

成功すると、アプリは質問のリストを含むJSONの応答を受け取ります。

フォームをアーカイブする

削除はサポートされていないため、リードフォームのアーカイブのみができます。フォームをアーカイブすると、次のようになります。

  • フォームは(デフォルトでは)フォームライブラリに表示されなくなります。
  • APIでエラーが発生する場合があるため、広告でアーカイブ済みのフォームは使用できません。
  • アーカイブしたフォームは、CFまたはPEの広告を作成する場合には利用できません。

特定のリード獲得フォームをアーカイブするには、次のようにパラメーターを指定して、/page_id/leadgen_form_idエンドポイントにPOSTリクエストを送信します。

  • access_tokenをページアクセストークンに設定
  • statusARCHIVEDに設定

リクエストの例

読みやすくするためにフォーマットしています。太字のイタリックになっている値は、実際の値に置き換えてください。
curl -X GET "https://graph.facebook.com/v19.0/page_id/leadgen_form_id
    ?status=ARCHIVED
    &access_token=page_access_token"

成功すると、アプリはsuccesstrueに設定されたオブジェクトを含むJSON応答を受け取ります。

アーカイブされたフォームは、statusACTIVEに設定してリクエストを送信すると、再アクティブ化できます。

ウェブサイトにフォームを追加する

ウェブサイトにフォームを追加するには、Facebook JavaScript SDKを使ってポップアップダイアログを起動します。実行するとすぐにポップアップが表示されるため、それを適切なイベントに関連付けるようにしてください。広告クリエイティブに必要なデータを提供するコールバックを定義することができるようになります。Metaにより、ページレベルでフォームが格納されます。

制限

  • このダイアログはモバイルデバイスではサポートされていません。

act_ad_account_idの値に含まれないことに注意してください。

SDKの例

太字のイタリックになっている値は、実際の値に置き換えてください。

FB.ui({
  method: 'lead_gen',
  page_id: YOUR_PAGE_ID,
  ad_account_id: AD_ACCOUNT_ID, 
}, function(response) {
...
});

受け取るコールバック応答に、フォームに関する情報が含まれています。

{
  follow_up_action_text: "YOUR_FOLLOW_UP_ACTION_TEXT",
  follow_up_action_url: "YOUR_FOLLOW_UP_ACTION_URL",
  formID: YOUR_FORM_ID,
  form_url: "YOUR_FORM_URL",
  is_tcpa_compliant: false,
  name: "YOUR_FORM_NAME",
  pageID: YOUR_PAGE_ID,
  privacy_policy_url: "YOUR_PRIVACY_POLICY_URL",
  status: "success"
}

応答のプロパティ

名前説明

custom_disclaimer_responses文字列

カスタム免責事項チェックボックスに対する応答

follow_up_action_text文字列

フォームの最終画面に表示するフォローアップアクションテキストのキャプション

follow_up_action_url文字列

フォームの最終画面に表示するフォローアップアクションテキストのリンク先

formID文字列

必須。フォームのID

form_url文字列

フォームのURL

name文字列

フォームの名前

pageID文字列

このフォームが属するページのID

privacy_policy_url文字列

提供されたプライバシーポリシーのURL

status文字列

フォームが作成されると、successが返されます

作成をキャンセルすると、次のような応答が返されます。

{
  error_code: 4201,
  error_message: "User canceled the Dialog flow"
}