WhatsApp誘導広告

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

WhatsApp誘導広告は、広告をクリックした利用者をWhatsAppでのビジネスとの会話に直接誘導します。この広告を利用することで、顧客に大規模にリーチし、優れたサービスをパーソナライズして提供できます。

WhatsApp誘導広告では、画像、動画、カルーセル、スライドショーを使用したメッセージをサポートしています。広告に通話プロンプトを含めることもできます。

MessengerやInstagramのチャットに誘導する広告の作成ガイダンスについては、Messenger誘導広告またはInstagram誘導広告をご覧ください。また、ユーザーが反応する可能性が高いリンク先を選ぶ広告を作成することもできます。詳しくは、複数誘導先広告をご覧ください。

広告の作成の概要

このドキュメントでは、WhatsApp誘導広告のための統合を設定する手順について、概要を説明します。

次のことをする必要があります。

  1. 広告キャンペーンを作成する
  2. 広告を広告キャンペーンにリンクする広告セットを作成する
  3. 配信するWhatsApp広告タイプの広告クリエイティブを作成する
  4. 広告クリエイティブを広告セットにリンクして広告を作成する
  5. Facebook、Instagram、Messengerに広告を公開する

開始する前に

このガイドは、前提として以下が必要です。

このガイドのエンドポイントのどれについても、呼び出しが成功するためには以下が必要です。

  • ページでADVERTISEタスクを実行できる人がリクエストしたページアクセストークン
  • アプリの利用者に以下のアクセス許可が付与されていなければなりません。
    • ads_management
    • pages_manage_ads
    • pages_read_engagement
    • pages_show_list

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

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

パラメーター

名前説明

name

文字列

必須。
WhatsApp誘導キャンペーンの名前。

objective

列挙型

必須。
キャンペーンの目的。
サポートされている目的は OUTCOME_ENGAGEMENTOUTCOME_SALESOUTCOME_TRAFFICです。
注: 通話プロンプト付きキャンペーンの場合、objectiveOUTCOME_ENGAGEMENTでなければなりません。

special_ad_categories

list<Object>

必須。
WhatsApp誘導キャンペーンに関連付けられている特別な広告カテゴリ。詳しくは、広告キャンペーンのリファレンスをご覧ください。

status

列挙型

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

スタンダードリクエスト

curl -X POST \
  -F 'name=Click to WhatsApp 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

キャンペーンリクエストの呼び出し

curl -X POST \
  -F 'name=Click to WhatsApp Calling Campaign' \
  -F 'objective=OUTCOME_ENGAGEMENT' \
  -F 'status=PAUSED' \
  -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リクエストを発行することにより、キャンペーンを更新することができます。

読み取り

WhatsApp誘導キャンペーンの作成が成功したことを確認するには、/<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 WhatsApp Campaign",
  "status": "PAUSED",
  "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

列挙型

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

campaign_id

数値文字列または整数

必須。
この広告セットを追加する有効なWhatsApp誘導キャンペーン。

daily_budget

int64

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

destination_type

文字列

必須。
単一誘導先のWhatsApp誘導広告の場合、WHATSAPPに設定。

end_time

日付

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

文字列

必須。
WhatsApp誘導広告セットの名前。

optimization_goal

列挙型

必須。
広告セットを最適化する対象。キャンペーンの目的に応じて、広告セットはさまざまな最適化目標に使用できる場合があります。


OUTCOME_ENGAGEMENT: エンゲージメントの目的は、CONVERSATIONSおよびLINK_CLICKSについて最適化できます。
OUTCOME_SALES: 販売の目的は、CONVERSATIONSOFFSITE_CONVERSIONSLINK_CLICKSIMPRESSIONSREACHについて最適化できます。
OUTCOME_TRAFFIC: トラフィックの目的は、CONVERSATIONSLANDING_PAGE_VIEWSLINK_CLICKSIMPRESSIONSREACHPOST_ENGAGEMENTについて最適化できます。

promoted_object

必須。
この広告セットのすべての広告のプロモーション対象。WhatsApp誘導広告の場合、promoted_objectの条件は次のとおりです。

必須:

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

任意:

  • whatsapp_phone_number: WhatsApp広告セットに関連付けられているWhatsApp電話番号。

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

start_time

日付

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

status

列挙型

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

targeting

Targetingオブジェクト

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

time_start

日付

任意。
start_timeと交換可能。

time_stop

日付

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

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

リクエスト

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "access_token":"<ACCESS_TOKEN>",
    "bid_amount":"<BID_AMOUNT>",
    "billing_event":"IMPRESSIONS",
    "campaign_id":"<CAMPAIGN_ID>",
    "daily_budget":"<DAILY_BUDGET>",
    "destination_type":"WHATSAPP",
    "name": "<AD_SET_NAME>",
    "optimization_goal": "IMPRESSIONS",
    "promoted_object": {
      "page_id": "<PAGE_ID>"
    },
    "status": "PAUSED",
    "start_time": "<START_TIME>",
    "targeting": { 
      "geo_locations": { "countries":["US","CA"] },
      "device_platforms": ["mobile", "desktop"]
    } 
  }' \
"https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adsets"

応答

{
  "id": "<AD_SET_ID>"
}

アップデート

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

読み取り

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

リクエスト

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

応答

{
  "name": "Click to WhatsApp Campaign",
  "status": "PAUSED",
  "objective": "OUTCOME_ENGAGEMENT",
  "id": "<AD_SET_ID>"
}

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

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

パラメーター

名前説明

name

文字列

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

object_story_spec

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


必須:

  • page_id: FacebookページのID

任意:

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

degrees_of_freedom_spec

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

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

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

顧客に表示されるデフォルトのメッセージは「Hello!Can I get more info on this?」です。object_story_specの下のpage_welcome_messageフィールドで、広告のあいさつメッセージをカスタマイズし、WhatsApp誘導広告のユーザーエクスペリエンスを調整することができます。

注: ボットフローをトリガーするためにWhatsAppメッセージを使う場合は、BSPおよび広告会社と連携して、フローが滞らないよう更新するようにしてください。

あいさつメッセージを使った自動入力メッセージを追加する

"page_welcome_message": {
  "type": "VISUAL_EDITOR",
  "version": 2,
  "landing_screen_type": "welcome_message",
  "media_type": "text",
  "text_format": {
    "customer_action_type": "autofill_message",
    "message": {
      "autofill_message": {
        "content": "<AUTOFILL_MESSAGE>"
      },
      "text": "<GREETING_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": {
        "text": "<GREETING_MESSAGE>",
        "ice_breakers": [
          {
            "title": "<ICEBREAKER>"
          },
          {
            "title": "<ICEBREAKER>"
          },
          {
            "title": "<ICEBREAKER>"
          }
        ]
      }
    }
  }
}

通話プロンプトでメッセージを追加中

curl \
  -F 'object_story_spec={
      "page_id": "<PAGE_ID>"
      "link_data": {
     "image_hash":<IMAGE_HASH>
            "call_to_action": {
              	"type": "WHATSAPP_MESSAGE",
              	"value": {
                  	"app_destination": "WHATSAPP"
             	 }
          },
          "link": "https://api.whatsapp.com/send",
          "name": <AD_HEADLINE>",
          "page_welcome_message":
       "type": "VISUAL_EDITOR",
        "version": 2,
        "landing_screen_type": "ctwa_call_prompt",
        "media_type": "text",
        "text_format": {
          "message": {
            "text": "<MESSAGE>"", 
            "call_prompt_data": {
              "call_prompt_message": "<CALL_PROMPT_MESSAGE>"
            }
          }
        },
        "user_edit": false
      },
  https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives

応答

{
  "id": "<AD_CREATIVE_ID>"
}

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

リクエスト

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
        "name": "Sample ad creative",
        "object_story_spec": {
          "page_id": "<PAGE_ID>",
          "link_data": {
            "name": "<AD_HEADLINE>",
            "message": "<AD_PRIMARY_TEXT>",
            "description": "<AD_DESCRIPTION>",
            "image_hash": "<IMAGE_HASH>",
            "link": "https://api.whatsapp.com/send",
            "page_welcome_message": "<PAGE_WELCOME_MESSAGE>",
            "call_to_action": {
              "type": "WHATSAPP_MESSAGE",
              "value": {
                "app_destination": "WHATSAPP"
              }
            }
          }
        },
        "degrees_of_freedom_spec": {
          "creative_features_spec": {
            "standard_enhancements": {
              "enroll_status": "OPT_IN"
            }
          }
        }
      }' \
"https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives"

応答

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

{
  "id": "<AD_CREATIVE_ID>"
}

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

広告クリエイティブに既存のInstagramコンテンツを使うこともできます。

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
        "source_instagram_media_id": "<INSTAGRAM_MEDIA_ID>",
        "instagram_user_id": "<INSTAGRAM_USER_ID>",
        "object_id": "<PAGE_ID>",
        "call_to_action": {
          "type": "WHATSAPP_MESSAGE",
            "value": {
              "link": "https://api.whatsapp.com/send",
              "app_destination": "WHATSAPP"
            }
          }
        },
        "degrees_of_freedom_spec": {
          "creative_features_spec": {
            "standard_enhancements": {
              "enroll_status": "OPT_IN"
            }
          }
        }
      }' \
  https://graph.facebook.com/latest-api-version />/act_<AD_ACCOUNT_ID>/adcreatives

アップデート

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

読み取り

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

リクエスト

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

応答

{
  "name": "Sample ad creative",
  "object_story_spec" {
    "page_welcome_message": {
      "type": "VISUAL_EDITOR",
      "version": 2,
      "landing_screen_type": "welcome_message",
      "media_type": "text",
      "text_format": {
        "customer_action_type": "autofill_message",
        "message": {
          "autofill_message": {
            "content": "Sample autofill message"
          },
        "text": "Sample greeting message"
        }
      }
    }
  },
  "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 \
  -H "Content-Type: application/json" \
  -d '{
        "name": "Sample ad",
        "adset_id": "<AD_SET_ID>",
        "creative": {
          "creative_id": "<AD_CREATIVE_ID>"
        },
        "status": "PAUSED"
     }' \
  "https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/ads"

応答

{
  "id": "<AD_ID>"
}

アップデート

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

読み取り

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

リクエスト

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

応答

{
  "status": "PAUSED",
  "adset_id": "<AD_SET_ID>",
  "campaign_id": "<AD_CAMPAIGN_ID>",
  "id": "<AD_ID>"
}

ステップ5: 広告を公開する

広告マネージャで、該当する広告が存在することを確認します。変更内容を公開する準備ができたら、キャンペーン、キャンペーンの広告セット、広告を選択してから、[公開]ボタンをクリックします。

また、APIを使って広告を公開することもできます。/<AD_ID>に対して、statusパラメーターをACTIVEに設定したPOSTリクエストを送信するだけです(<AD_ID>は公開する広告)。

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