WhatsApp Businessプラットフォーム

テンプレートの基本

更新日時: 2026/05/21
LLM用にコピー
このドキュメントでは、すべてのテンプレートカテゴリに適用されるテンプレートのしくみについて説明します。カテゴリ別のテンプレートガイドについては、マーケティングメッセージ、ユーティリティメッセージ、認証メッセージをご覧ください。
テンプレートは、クラウドAPIまたはWhatsApp用マーケティングメッセージAPIを通じてテンプレートメッセージで送信できるメッセージアカウントのアセットです。テンプレートメッセージは、カスタマーサービス時間枠外でWhatsAppユーザーに送信できる唯一のメッセージタイプです。テンプレートは通常、ユーザーに一括メッセージを送信する場合や、ユーザーとの間でカスタマーサービス時間枠が開いていない場合に使用されます。

作成

メッセージテンプレートAPIまたはWhatsAppマネージャのメッセージテンプレートパネル⁠を使用して、テンプレートを作成します。
API経由でのテンプレート作成では、共通の構文が使用されます。主な違いが生じるのは、テンプレートにカテゴリを割り当てるcategory文字列と、テンプレートを構成するコンポーネントを定義するcomponents配列です。
メッセージアカウントで作成できるテンプレートは、1時間に最大100件です。

共通の構文

curl 'https://graph.facebook.com/v23.0/102290129340398/message_templates' \
-H 'Authorization: Bearer EAAJB...' \
-H 'Content-Type: application/json' \
-d '
{
"name": "<NAME>",
"category": "<CATEGORY>",
"language": "<LANGUAGE>",
"parameter_format": "<PARAMETER_FORMAT>",
"components": [<COMPONENTS>]
}'

名前

各テンプレートには名前が必要ですが、その名前は一意である必要はありません。この柔軟性により、同じ名前でも、異なる言語で複数のテンプレートを作成できます。
テンプレート名には最大512文字という制約があり、小文字の英数字とアンダースコアを使用できます。

カテゴリ

各テンプレートは、認証、マーケティング、またはユーティリティに分類される必要があります。テンプレートのカテゴリ分類に関するガイドでは、テンプレートに適切なカテゴリを割り当てる方法と、テンプレートのカテゴリ分類が誤っている場合に起こり得ることについて説明しています。
なお、テンプレートのカテゴリは価格設定にも反映されます。

コンポーネント

テンプレートは、テンプレート作成時に定義するさまざまなテキスト、メディア、インタラクティブUIコンポーネントで構成されます。使用可能なすべてのコンポーネントとその定義方法については、テンプレートコンポーネントに関するガイドに記載されています。
選択できるコンポーネントが多数あるため、カテゴリ別のテンプレートガイドについては、認証メッセージ、マーケティングメッセージ、ユーティリティメッセージの各セクションをご覧ください。よく使われるコンポーネントを組み合わせてさまざまなテンプレートを作成する方法を示すコード例も記載されています。

言語

テンプレート作成時にテンプレート言語コードを割り当てる必要があります。テンプレート文字列と変数はMetaによって翻訳されないため、適切な言語で文字列とサンプルパラメーターを用意するのは利用者の責任となります。
同じ名前で言語が異なるテンプレートを複数作成した場合、それぞれがテンプレート数の上限に個別にカウントされます。

パラメーターのフォーマット

一部のテンプレートコンポーネントでは、パラメーター(WhatsAppマネージャでは「変数」と表記)を1つ以上含む文字列を定義できます。これらは、テンプレート送信時に、メッセージ送信ペイロードに含めた値に置き換えられます。
テンプレート作成時に、文字列にパラメーターが1つ以上含まれている場合、そのパラメーターのフォーマットをnamed(名前指定)またはpositional(位置指定)に指定できます。指定する際には、各パラメーターのサンプル値を含める必要があります。フォーマットを指定しない場合、テンプレートではデフォルトでpositionalフォーマットが使用されます。

名前指定パラメーター

namedフォーマットを使用したパラメーターは、小文字とアンダースコアで構成された一意かつ単一の文字列とし、二重の波括弧で囲む必要があります(例: {{first_name}})。テンプレート作成ペイロードのサンプル値と、テンプレート送信ペイロードの実際の値は、任意の順序で指定できます。
名前指定パラメーターを使用したテンプレート作成ペイロードの例:
{
"name": "order_confirmation",
"language": "en_US",
"category": "utility",
"parameter_format": "named",
"components": [
  {
    "type": "body",
    "text": "Thank you, {{first_name}}! Your order number is {{order_number}}.",
    "example": {
      "body_text_named_params": [
        {
          "param_name": "first_name",
          "example": "Pablo"
        },
        {
          "param_name": "order_number",
          "example": "860198-230332"
        }
      ]
    }
  }
]
}
名前指定パラメーターを使用しているテンプレートのテンプレート送信ペイロードの例:
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "+16505551234",
"type": "template",
"template": {
  "name": "order_confirmation",
  "language": {
    "code": "en_US"
  },
  "components": [
    {
      "type": "body",
      "parameters": [
        {
          "type": "text",
          "parameter_name": "first_name",
          "text": "Jessica"
        },
        {
          "type": "text",
          "parameter_name": "order_number",
          "text": "SKBUP2-4CPIG9"
        }
      ]
    }
  ]
}
}

位置指定パラメーター

位置指定パラメーターは、1から始まる配列インデックス番号を順番に指定し、二重の波括弧で囲む必要があります(例: {{1}}...{{2}}...)。テンプレート作成ペイロードのサンプル値と、テンプレート送信ペイロードの実際の値は、対応するプレースホルダーがコンポーネントのテキスト文字列で表示される順番に従って指定する必要があります。
位置指定パラメーターを使用したテンプレート作成ペイロードの例:
{
"name": "order_confirmation",
"language": "en_US",
"category": "utility",
"parameter_format": "positional",
"components": [
  {
    "type": "body",
    "text": "Hi {{1}}! Your order number is {{2}}. Thank you.",
    "example": {
      "body_text": [
        [
          "Pablo",
          "860198-230332"
        ]
      ]
    }
  }
]
}
位置指定パラメーターを使用しているテンプレートのテンプレート送信ペイロードの例:
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "+16505551234",
"type": "template",
"template": {
  "name": "order_confirmation",
  "language": {
    "code": "en_US"
  },
  "components": [
    {
      "type": "body",
      "parameters": [
        {
          "type": "text",
          "text": "Jessica"
        },
        {
          "type": "text",
          "text": "SKBUP2-4CPIG9"
        }
      ]
    }
  ]
}
}

メディア

テンプレートヘッダーコンポーネントでは、メディアアセットを表示できます。メディアヘッダーを含むテンプレートを作成する場合は、再開可能アップロードAPIを使用してアセットハンドルを取得し、テンプレート作成リクエストにアセットハンドルを含める必要があります。サンプルアセットは、テンプレート審査の一環として審査されます。

テンプレート審査

テンプレートは、作成後または編集後に自動的に審査されます。テンプレートが承認されると、そのステータスはAPPROVEDに設定され、テンプレートメッセージでそのテンプレートを送信できるようになります。却下された場合や、ステータスが他の値に変更された場合は、そのテンプレートをテンプレートメッセージで送信することはできません。
テンプレート審査のプロセス、よくある却下理由、テンプレートが却下された場合の対処方法について、詳しくはテンプレート審査をご覧ください。

テンプレートステータス

テンプレートメッセージとして送信するには、そのテンプレートのステータスがAPPROVEDである必要があります。テンプレートのステータスは、最初はテンプレート審査プロセスで設定されますが、使用状況や品質に関するフィードバックに応じて別の値に変更されることがあります。
テンプレートのステータス変更はmessage_template_status_update Webhookで通知されますが、テンプレートAPIを使用してstatusフィールドをリクエストすれば、いつでもテンプレートのステータスを取得できます。

リクエストの例

curl 'https://graph.facebook.com/<API_VERSION>/<TEMPLATE_ID>?fields=status' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'

応答の例

{
"status": "APPROVED",
"id": "1259544702043867"
}
テンプレートAPIのリファレンスで、どのようなステータス値が存在し、それぞれが何を意味するのかをご確認ください。

WhatsAppマネージャ

WhatsAppマネージャの[テンプレートを管理]⁠パネルでもテンプレートのステータスが表示され、承認済み(active)のテンプレートには品質評価が付加されます。
  • 審査中: テンプレートがまだ審査中であることを示しています。審査には最大で24時間かかります。
  • 却下: テンプレートは、審査プロセスで却下されたか、WhatsAppのポリシーに違反しています。
  • アクティブ ― 品質保留中: このメッセージテンプレートは、まだ顧客から品質に関するフィードバックや既読率情報を受けていません。このステータスのメッセージテンプレートは顧客に送信できます。
  • アクティブ ― 高品質: このテンプレートに対する顧客からのマイナス評価はごく少数、または0件です。このステータスのメッセージテンプレートは顧客に送信できます。
  • アクティブ ― 中品質: このテンプレートは、複数の顧客からマイナス評価を受けているか、既読率が低く、間もなく一時停止または無効になる可能性があります。このステータスのメッセージテンプレートは顧客に送信できます。
  • アクティブ ― 低品質: このテンプレートは、複数の顧客からマイナス評価を受けているか、既読率が低くなっています。このステータスのメッセージテンプレートは、顧客への送信は可能ですが、すぐに一時停止または無効になる可能性が高いため、顧客から報告されている問題に対処してください。
  • 一時停止中: このテンプレートは、顧客からのマイナス評価が繰り返し寄せられているか、既読率が低いため一時停止しています。このステータスのメッセージテンプレートを顧客に送信することはできません。テンプレートの一時停止をご覧ください。
  • オフ: このテンプレートは、顧客からのマイナス評価が多いためオフになっています。このステータスのメッセージテンプレートを顧客に送信することはできません。
  • 異議申し立てリクエスト済み: 異議が申し立てられたことを示しています。

テンプレートの制限事項

メッセージアカウントが所持できるテンプレートの数は、親ビジネスポートフォリオによって決まります。
親ビジネスポートフォリオが未認証である場合、メッセージテンプレート数はメッセージアカウントあたり250件に制限されます。ただし、親ビジネスポートフォリオが認証済み⁠で、WhatsAppアカウントの少なくとも1つに承認済みの表示名を持つビジネス電話番号がある場合、メッセージアカウントあたり最大6,000件のテンプレートを所持できるようになります。
また、送信できるテンプレートの数には制限があり、テンプレートの配信に影響する可能性があるプロセスも存在します。
  • メッセージ制限 — カスタマーサービス時間枠外に送信できるメッセージテンプレート数の制限です。
  • テンプレートペーシング — WhatsAppユーザーがメッセージテンプレートに関するフィードバックを提供する時間を確保するためのプロセスです。
  • テンプレートの一時停止 — 低評価のフィードバックを受け取ったメッセージテンプレートを一時的に停止するプロセスです。
  • テンプレートのアーカイブ — アクティブでない期間が12か月以上のテンプレートを自動的にアーカイブ・削除するプロセスです。アーカイブされたテンプレートは、アーカイブが解除されない限り、28日後に削除されます。
  • ユーザーごとのマーケティングテンプレートメッセージの制限 — 特定のWhatsAppユーザーが、任意のビジネスから受信できるマーケティングメッセージテンプレートの数を制限するプロセスです。

有効期間

WhatsAppユーザーに送信したメッセージを配信できない場合、システムでは有効期間(TTL)と呼ばれる一定期間にわたって配信が試行され続けます。テンプレートの作成時に、テンプレートのTTLをカスタマイズできます。
詳しくは、有効期間をご覧ください。

品質評価

テンプレート品質評価は、使用状況や顧客からのフィードバック、エンゲージメントに基づいてメッセージテンプレートの品質を評価するためのシステムです。この評価により、高品質のメッセージエコシステムを保ちつつ、ユーザーにとって関連性が高く受け入れられやすいメッセージを送信できます。
品質評価について、またそれがテンプレートのステータスにどのように影響するか、そしてテンプレートの品質スコアの変更についてどのように通知されるかなどについて詳しくは、テンプレート品質評価をご覧ください。

複数メッセージの配信順序

一連のメッセージを送信する際、メッセージが配信される順番が、APIリクエスト発行の順番と一致するという保証はありません。メッセージを順番に配信したい場合は、ステータスメッセージWebhookでdeliveredステータスを受け取ったことを確認してから、次のメッセージを送信するようにしてください。

テンプレートの管理

テンプレートの取得、更新、削除によく使われるエンドポイントのリストについては、テンプレートの管理をご覧ください。