複数リンク先誘導広告

このガイドでは、マーケティングAPIを使って複数リンク先誘導広告を作成し、公開する方法について説明します。

複数リンク先誘導広告では、広告をクリックした利用者を、応答する可能性が最も高い1つまたは複数のメッセージアプリ(Messenger、Instagram、WhatsApp)でのビジネスとのスレッドに直接誘導します。この広告を利用することで、顧客に大規模にリーチし、優れたサービスをパーソナライズして提供できます。

複数リンク先誘導広告とは、Messengerチャット、Instagramチャット、WhatsAppチャットの任意の組み合わせをリンク先とする広告のことです。

リンク先が1つだけの広告を作成する場合は、次の資料をご覧ください。

広告の作成の概要

このドキュメントでは、複数リンク先誘導広告のための統合を設定する手順の概要を説明します。次のことをする必要があります。

  1. 広告キャンペーンを作成する
  2. 広告を広告キャンペーンにリンクする広告セットを作成する
  3. 配信する複数リンク先広告タイプの広告クリエイティブを作成する
  4. 広告クリエイティブを広告セットにリンクして広告を作成する

はじめに

このガイドは、以下のものがあることを前提としています。

ステップ1: 広告キャンペーンを作成する

まず広告キャンペーンを作成します。そのためには、/act_<AD_ACCOUNT_ID>/campaignsエンドポイントに対して、POSTリクエストを送信します(<AD_ACCOUNT_ID>はMeta広告アカウントのID)。リクエストには以下を含める必要があります。

パラメーター

名前説明

name

文字列

必須。
複数リンク先誘導キャンペーンの名前。

objective

列挙型

必須。
キャンペーンの目的。
サポートされている目的は、OUTCOME_ENGAGEMENTOUTCOME_SALESOUTCOME_TRAFFICです。

special_ad_categories

list<Object>

必須。
複数リンク先誘導キャンペーンに関連付けられている特別な広告カテゴリ。現在のところ、複数リンク先誘導広告で特殊広告カテゴリはサポートされていません。それでNONEまたは空配列であることが必要です。詳しくは、広告キャンペーンのリファレンスをご覧ください。

status

列挙型

任意。
有効なオプションはPAUSEDACTIVE
このステータスがPAUSEDの場合、そのアクティブな広告セットと広告はすべて一時停止され、実質的なステータスはCAMPAIGN_PAUSEDになります。

リクエスト

curl -X POST \
  -F 'name=Click to Multi Destination Campaign' \
  -F 'objective=OUTCOME_ENGAGEMENT' \
  -F 'status=ACTIVE' \
  -F 'special_ad_categories=[]' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/campaigns

応答

成功すると、アプリは新たに作成されたキャンペーンのIDを含むJSONの応答を受け取ります。

{
  "id": "<AD_CAMPAIGN_ID>"
}

更新

/<AD_CAMPAIGN_ID>に対してPOSTリクエストを発行することにより、キャンペーンを更新することができます。

読み取り

複数リンク先誘導キャンペーンの作成が成功したことを確認するには、/<AD_CAMPAIGN_ID>GETリクエストを発行します。利用可能な全パラメーターのリストについては、広告キャンペーンのリファレンスをご覧ください。

リクエスト

curl -X GET -G \
  -d 'fields=name,status,objective' \
  -d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<AD_CAMPAIGN_ID>

応答

{
  "name": "Click to Multi Destination Campaign",
  "status": "ACTIVE",
  "objective": "OUTCOME_ENGAGEMENT",
  "id": "<AD_CAMPAIGN_ID>"
}

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

広告キャンペーンが作成されたら、広告セットを作成します。広告セットを作成するには、/act_<AD_ACCOUNT_ID>/adsetsエンドポイントに対して、POSTリクエストを送信します(<AD_ACCOUNT_ID>はMeta広告アカウントのID)。リクエストには以下を含める必要があります。

パラメーター

名前説明

bid_amount

符号なしint32

bid_strategyがLOWEST_COST_WITH_BID_CAPまたはCOST_CAPに設定されている場合は必須
optimization_goalに基づく結果に対して支払う最大金額。

bid_strategy

列挙型

任意。
特定のビジネス目標に合った、このキャンペーンの入札戦略。詳しくは、広告キャンペーンのリファレンスをご覧ください。
値:LOWEST_COST_WITHOUT_CAPLOWEST_COST_WITH_BID_CAPCOST_CAP

billing_event

列挙型

必須。
複数リンク先誘導広告では常にIMPRESSIONSに設定。広告が利用者に表示されるとMetaから請求されます。

campaign_id

数値文字列または整数

必須。
この広告セットの追加先とする有効な複数リンク先誘導キャンペーン。

daily_budget

int64

lifetime_budgetが設定されていない場合は必須
アカウントの通貨で定義された1日の予算。期間(end_timestart_timeの間の差)が24時間を超える広告セットの場合のみ可能。
daily_budgetlifetime_budgetのいずれか一方が0より大きくなければなりません。

destination_type

文字列

必須。


  • 3つのリンク先(Messenger、WhatsApp、Instagram)すべてを使う場合は、MESSAGING_INSTAGRAM_DIRECT_MESSENGER_WHATSAPPに設定します。
  • MessengerとInstagramを使う場合は、MESSAGING_INSTAGRAM_DIRECT_MESSENGERに設定します。
  • MessengerとWhatsAppを使う場合は、MESSAGING_MESSENGER_WHATSAPPに設定します。
  • WhatsAppとInstagramを使う場合は、MESSAGING_INSTAGRAM_DIRECT_WHATSAPPに設定します。

注: WhatsAppをリンク先に含める場合は、自分のページにリンクされているWhatsApp Business番号があることを確認してください。Instagramをリンク先に含める場合は、自分のページにリンクされているInstagramビジネスアカウントがあることを確認してください。

end_time

datetime

lifetime_budgetが指定されている場合は必須
daily_budgetを指定して広告セットを作成する場合は、end_time=0を指定します。終了日付なしで広告セットを進行中として設定する場合は、このフィールドを空のままにします。
例:2015-03-12 23:59:59-07:00または2015-03-12 23:59:59 PDT。UTC UNIXタイムスタンプ。

lifetime_budget

int64

daily_budgetが設定されていない場合は必須
アカウントの通貨で定義された広告セットの通算予算。指定する場合、end_timeも指定する必要があります。
daily_budgetlifetime_budgetのいずれか一方が0より大きくなければなりません。

name

文字列

必須。
複数リンク先誘導広告セットの名前。

optimization_goal

列挙型

必須。
広告セットの最適化対象。複数リンク先誘導広告では常にCONVERSATIONSに設定。キャンペーンの目的によっては、広告セットがさまざまな最適化目標の対象となる場合があります。

promoted_object

必須。
全広告を通じてこの広告セットが宣伝しているオブジェクト。複数リンク先誘導広告の場合、promoted_objectの条件は次のとおりです。

  • page_id: 必須。FacebookページのID。

詳しくは、広告セット、宣伝の対象物をご覧ください。

start_time

datetime

任意。
広告セットの開始時刻。このフィールドの値が指定されていない場合、デフォルトは現在の時刻です。
例:2015-03-12 23:59:59-07:00または2015-03-12 23:59:59 PDT。UTC UNIXタイムスタンプ。

status

列挙型

任意。
広告セットのステータス。これは、その親キャンペーンが原因で実質的なステータスとは異なる場合があります。このフィールドの値が指定されていない場合、デフォルトはACTIVEです。
値:ACTIVEPAUSEDDELETEDARCHIVED

targeting

ターゲット設定オブジェクト

必須。
Instagram誘導広告のターゲット設定構造体。詳しくは、ターゲット設定をご覧ください。

time_start

datetime

任意。
start_timeと交換可能。

time_stop

datetime

lifetime_budgetが指定されている場合は必須
end_timeと交換可能。

利用可能なパラメーターの一覧については、広告アカウント広告セットのリファレンスをご覧ください。

リクエスト

curl -X POST \
  -F 'access_token=<ACCESS_TOKEN>' \
  -F 'bid_strategy=LOWEST_COST_WITHOUT_CAP' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'daily_budget=<DAILY_BUDGET>' \
  -F 'destination_type=<DESTINATION_TYPE>' \
  -F 'name=<AD_SET_NAME>' \
  -F 'optimization_goal=CONVERSATIONS' \
  -F 'promoted_object={
      "page_id": "<PAGE_ID>"
    }' \
  -F 'status=ACTIVE' \
  -F 'start_time=<START_TIME>' \
  -F 'targeting={ 
        "geo_locations": { "countries":["US","CA"] },
        "device_platforms": ["mobile", "desktop"]
  }' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adsets

応答

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

{
  "id": "<AD_SET_ID>"
}

更新

/<AD_SET_ID>に対してPOSTリクエストを発行することにより、広告セットを更新することができます。

読み取り

複数リンク先誘導広告セットの作成が成功したことを確認するには、/<AD_SET_ID>GETリクエストを発行します。利用可能なパラメーターの一覧については、広告セットのリファレンスをご覧ください。

リクエスト

curl -X GET -G \
  -d 'fields=name,destination_type,optimization_goal,bid_strategy' \
  -d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<AD_SET_ID>

応答

{
  "name": "<AD_SET_NAME>",
  "destination_type": "<DESTINATION_TYPE>",
  "optimization_goal": "CONVERSATIONS",
  "bid_strategy": "LOWEST_COST_WITHOUT_CAP'"
  "id": "<AD_SET_ID>"
}

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

広告クリエイティブを使用して、広告にアセットを追加できます。広告クリエイティブを作成するには、/act_<AD_ACCOUNT_ID>/adcreativesエンドポイントに対して、POSTリクエストを送信します(<AD_ACCOUNT_ID>はMeta広告アカウントのID)。リクエストには以下を含める必要があります。

パラメーター

名前説明

asset_feed_spec

必須。
複数リンク先誘導広告のリンク先を指定します

必須

  • DOF_MESSAGING_DESTINATION: 複数リンク先誘導広告では常にoptimization_typeに設定。
  • call_to_actions: 複数リンク先誘導広告の選択されているリンク先の配列。これは、広告セットの中で指定されているdestination_typeに一致している必要があります。

Messenger

{
  "type": "MESSAGE_PAGE",
    "value": {
       "app_destination": "MESSENGER",
       "link": "https://fb.com/messenger_doc/"
    }
} 

WhatsApp

{
  "type": "WHATSAPP_MESSAGE",
    "value": {
       "app_destination": "WHATSAPP",
       "link": "https://api.whatsapp.com/send"
    }
}

Instagram

{
  "type": "INSTAGRAM_MESSAGE",
    "value": {
       "app_destination": "INSTAGRAM_DIRECT",
       "link": "https://www.instagram.com"
    }
}

name

文字列

必須。
広告クリエイティブの名前。

object_story_spec

必須。
メッセージに関する情報を含むオブジェクト。詳しくは、広告クリエイティブオブジェクトストーリーの仕様をご覧ください。


必須

  • page_id: FacebookページのID
  • instagram_actor_id: InstagramアカウントID。InstagramアカウントIDを入手する方法には、ビジネスマネージャ所有のInstagramアカウント、ページにリンクされているInstagramアカウント、ページバックInstagramアカウントの3種類があります。

任意

  • link_data: リンクページ投稿またはカルーセル広告の仕様
  • photo_data: 写真ページ投稿の仕様
  • text_data: テキストページ投稿の仕様
  • video_data: 動画ページ投稿の仕様

degrees_of_freedom_spec

任意。
詳しくは、Advantage+ クリエイティブの標準エンハンスをご覧ください。

利用可能なパラメーターの一覧については、広告クリエイティブのリファレンスをご覧ください。

ページのウェルカムメッセージの設定

顧客に対して表示されるデフォルトのメッセージは「こんにちは!これについての詳しい情報をいただけますか?」というものです。object_story_specの下のpage_welcome_messageフィールドの中で、広告のあいさつメッセージ、icebreaker、自動入力メッセージをカスタマイズすることにより、複数リンク先誘導広告のユーザーエクスペリエンスをさらに調整することができます。

Icebreakerについて詳しくは、ice_breakersリファレンスをご覧ください。

制限

  • Icebreakerのタイトルは80文字以下でなければなりません。
  • Icebreakerの応答は300文字以下でなければなりません。
  • メッセージテキストは300文字以下でなければなりません。

page_welcome_messageオブジェクトを作成して、あいさつメッセージ付きのicebreakerを追加します。

"page_welcome_message": {
  "type":"VISUAL_EDITOR",
  "version":2,
  "landing_screen_type":"welcome_message",
  "media_type":"text",
  "text_format":{
    "customer_action_type":"ice_breakers",
    "message":{
      "ice_breakers":[
        {"title":"Can I make a purchase?","response":"This is a response 1"},
        {"title":"Can I see a menu?", "response":"This is a response 2"},
        {"title":"Where are you located?", "response":"This is a response 3"}],
      "quick_replies":[],
      "text":"Hi {{user_first_name}}! Please let us know how we can help you."}
  },
  "user_edit":false,
  "surface":"visual_editor_new"
}

広告クリエイティブの作成例

page_welcome_messageフィールドを次のようにクリエイティブに追加します。

リクエスト

curl -X POST \
-F 'name=<CREATIVE_NAME>' \
-F 'object_story_spec={
     "page_id": "438346666550309",
     "link_data": {
       "name": "<AD_HEADLINE>",
       "message": "<AD_PRIMARY_TEXT>",
       "image_hash": "<IMAGE_HASH>"
       "link": "https://fb.com/messenger_doc/",
       "page_welcome_message": "<PAGE_WELCOME_MESSAGE>",
       "call_to_action": {
         "type": "MESSAGE_PAGE",
         "value": {
           "app_destination": "MESSENGER"
         }
       }
     }
   }' \
-F 'asset_feed_spec={
     "optimization_type": "DOF_MESSAGING_DESTINATION",
     "call_to_actions": [
       {
         "type": "MESSAGE_PAGE",
         "value": {
           "app_destination": "MESSENGER",
           "link": "https://fb.com/messenger_doc/"
         }
       },
       {
         "type": "WHATSAPP_MESSAGE",
         "value": {
           "app_destination": "WHATSAPP",
           "link": "https://api.whatsapp.com/send"
         }
       },
       {
         "type": "INSTAGRAM_MESSAGE",
         "value": {
           "app_destination": "INSTAGRAM_DIRECT",
           "link": "https://www.instagram.com"
         }
       }
     ]
   }' \
-F 'degrees_of_freedom_spec={
     "creative_features_spec": {
       "standard_enhancements": {
         "enroll_status": "OPT_IN"
       }
     }
   }' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives

応答

成功すると、アプリは新たに作成されたクリエイティブのIDを含むJSONの応答を受け取ります。

{
  "id": "<AD_CREATIVE_ID>"
}

Instagramコンテンツを使った広告クリエイティブの作成

Instagram投稿

詳細については、投稿をInstagram広告として使用するを参照してください。

curl -X POST \
  -F 'name=Sample ad creative from Instagram post' \
  -F 'object_id=<PAGE_ID>' \
  -F 'instagram_user_id=<INSTAGRAM_USER_ID>' \
  -F 'source_instagram_media_id=<INSTAGRAM_POST_ID>' \
  -F 'call_to_action={
       "type": "INSTAGRAM_MESSAGE",
       "value": {
         "link": "https://www.instagram.com"
       }
     }' \ 
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives

Instagram画像

curl -X POST \
  -F 'name=Sample ad creative from Instagram image' \
  -F 'object_story_spec={
       "page_id": "<PAGE_ID>",
       "instagram_actor_id": "<INSTAGRAM_ACTOR_ID>",
       "link_data": {
         "message": "<AD_PRIMARY_TEXT>",
         "picture": "<IMAGE_URL>"
         "page_welcome_message": "<PAGE_WELCOME_MESSAGE>",
         "call_to_action": {
           "type": "INSTAGRAM_MESSAGE",
           "value": {
             "app_destination": "INSTAGRAM_DIRECT"
           }
         }
       }
     }' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives

Facebookコンテンツを使った広告クリエイティブの作成

詳細については、投稿をInstagram広告として使用する: Facebook投稿を参照してください。

curl -i -X POST \
  "https://graph.facebook.com/v21.0/act_<AD_ACCOUNT>/adcreatives
  ?object_story_id=<postOwnerID_postID>
  &instagram_actor_id=<IG_USER_ID>
  &call_to_action="{'type':MESSAGE_PAGE,'value':{'app_destination':'MESSENGER'}}"
  &access_token=<ACCESS_TOKEN>"

ここで、object_story_idpostOwnerID_postID形式の投稿IDであり、instagram_actor_idはページ連動InstagramアカウントIDまたはページバックInstagramアカウント IDです。詳細は、ページでInstagramアカウントを設定するをご覧ください。

更新

/<AD_CREATIVE_ID>に対してPOSTリクエストを発行することにより、広告クリエイティブを更新できます。

読み取り

複数リンク先誘導広告クリエイティブの作成が成功したことを確認するには、/<AD_CREATIVE_ID>GETリクエストを発行します。利用可能なパラメーターの一覧については、広告クリエイティブをご覧ください。

リクエスト

curl -X GET -G \
  -d 'fields=name,object_story_spec{page_welcome_message},asset_feed_spec' \
  -d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<AD_CREATIVE_ID>

応答

{
  "name": "<CREATIVE_NAME>",
  "object_story_spec": {
    "page_welcome_message": {
      "type": "VISUAL_EDITOR",
      "version": 2,
      "landing_screen_type": "welcome_message",
      "media_type": "text",
      "text_format": {
        "customer_action_type": "ice_breakers",
        "message": {
          "text": "Sample greeting message",
          "ice_breakers": [
            {
              "title": "Sample icebreaker"
            },
            {
              "title": "Sample icebreaker"
            },
            {
              "title": "Sample icebreaker"
            }
          ]
        }
      }
    }
  },
  "asset_feed_spec": {
    "optimization_type": "DOF_MESSAGING_DESTINATION",
    "call_to_actions": [
      {
        "type": "MESSAGE_PAGE",
        "value": {
          "app_destination": "MESSENGER",
          "link": "https://fb.com/messenger_doc/"
        }
      },
      {
        "type": "WHATSAPP_MESSAGE",
        "value": {
          "app_destination": "WHATSAPP",
          "link": "https://api.whatsapp.com/send"
        }
      },
      {
        "type": "INSTAGRAM_MESSAGE",
        "value": {
          "app_destination": "INSTAGRAM_DIRECT",
          "link": "https://www.instagram.com"
        }
      }
    ]
  },
  "id": "<AD_CREATIVE_ID>"
}

ステップ4: 広告を作成する

広告により、広告クリエイティブの情報を広告セットに関連付けることができます。広告を作成するには、/act_<AD_ACCOUNT_ID>/adsエンドポイントに対して、POSTリクエストを送信します(<AD_ACCOUNT_ID>はMeta広告アカウントのID)。リクエストには以下を含める必要があります。

パラメーター

名前説明

name

文字列

必須。
広告クリエイティブの名前。

adset_id

数値文字列または整数

必須。
広告セットのID。

creative

必須。
この広告で使う広告クリエイティブ。既存の広告クリエイティブのcreative_idを指定できます。または、必須フィールドをすべて含めて新しい広告クリエイティブを作成することもできます。詳しくは、広告クリエイティブをご覧ください。

status

列挙型

必須。
広告の設定ステータス。
値:ACTIVEPAUSEDDELETEDARCHIVED

リクエスト

curl -X POST \
  -F 'name=<AD_NAME>' \
  -F 'adset_id=<AD_SET_ID> \
  -F 'creative={
       "creative_id": "<AD_CREATIVE_ID>"
     }' \
  -F 'status=ACTIVE \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/ads

応答

成功すると、アプリは新たに作成された広告のIDを含むJSON応答を受け取ります。

{
  "id": "<AD_ID>"
}

コールトゥアクション

広告を作成する際にコールトゥアクションを設定することもできます。

"asset_feed_spec": {
  "optimization_type": "DOF_MESSAGING_DESTINATION",
  "call_to_actions": [
    {
      "type": "MESSAGE_PAGE",
      "value": {
        "app_destination": "MESSENGER",
        "link": "https://fb.com/messenger_doc/"
      }
    },
    {
      "type": "INSTAGRAM_MESSAGE",
      "value": {
        "app_destination": "INSTAGRAM_DIRECT",
        "link": "https://www.instagram.com"
      }
    }
  ]
}

詳細は、アセットフィードの仕様のドキュメントをご覧ください。

更新

/<AD_ID>に対してPOSTリクエストを発行することにより、広告を更新できます。

読み取り

複数リンク先誘導広告の作成が成功したことを確認するには、/<AD_ID>GETリクエストを発行します。利用可能なパラメーターの一覧については、広告のリファレンスをご覧ください。

リクエスト

curl -X GET -G \
  -d 'fields=status,adset_id \
  -d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<AD_ID>

応答

{
  "status": "ACTIVE",
  "adset_id": "<AD_SET_ID>",
  "id": "<AD_ID>"
}