Idempotency-Key (UUID v4) を含めてください。
サポートされているチャネルと配信タイプ
チャネルのサポート状況は操作によって異なります。ONE_TIMEPERIODICEVENT_TRIGGEREDBUSINESS_EVENT_TRIGGEREDDEVICE_TRIGGERED(Push のみ)LOCATION_TRIGGERED(Push のみ)BROADCAST_LIVE_ACTIVITY(Push iOS のみ)
キャンペーンのライフサイクル
作成
channel、campaign_delivery_type、created_by) のみでドラフトを開始します。コンテンツ、オーディエンス、スケジュールは、その後の更新呼び出しで段階的に追加します。更新
検証 (任意)
テスト
channel と campaign_content を直接指定します。ドラフトモードでは、draft_id を渡して保存済みドラフトからコンテンツを読み込みます。ドラフトモードは V5 の新機能です。管理
- ドラフト状態: キャンペーンはドラフトとして開始されるようになりました。キャンペーンを段階的に構築し、V1 で開始する前に検証とテストを行います。
- Validate エンドポイント: V5 では、キャンペーン設定を確認するための専用の検証ステップが追加されました。V1 には同等の機能はありません。
- 認証ヘッダー: Basic 認証のユーザー名としてすでに Workspace ID が含まれているため、
MOE-APPKEYヘッダー (Workspace ID) は任意です。
キャンペーンのバージョン管理
キャンペーンのバージョン管理は、ワークスペースごとのオプトイン機能です。有効にすると、すでに稼働中のキャンペーンへの変更を公開した際に、version_number がインクリメントされた新しいキャンペーンドキュメントが作成されます。API レスポンスで返される campaign_id は正規の識別子です。バージョン間で同じ値が維持されるため、ドラフト、検索結果、分析を関連付けることができます。各バージョンには、それぞれ固有の生の id (24 文字の ObjectId) もあります。
ダッシュボードでの UI 中心の動作とバージョン履歴については、キャンペーンのバージョン管理を参照してください。
エンドポイント
Campaigns API は、キャンペーンのライフサイクルを管理するための次のエンドポイントで構成されています。- Create Campaign: 最小限の必須フィールドを使用して、新しい Push または Email キャンペーンを
DRAFT状態で初期化します。 - Get Campaign: 単一のキャンペーンを完全に展開された形式で取得し、現在の状態と設定を表示します。
- Update Campaign: 既存のドラフトの特定のコンポーネントを更新します。
- Validate Campaign: ドラフトを変更したり状態を変更したりすることなく、公開時の完全な検証チェックを安全に実行します。
- Update Campaign Status: すでに公開されているキャンペーンにライフサイクルの遷移 (STOP、PAUSE、RESUME) を適用します。
- Search Campaigns: 詳細なフィルターを使用してキャンペーンを検索します。ドラフト状態のキャンペーンを明示的に含めたり除外したりできます。
- Get Campaign Meta: スケジュール済みキャンペーンの日次キャッシュされたリーチ見込み数を含む、軽量なメタデータを取得します。
- Test Campaign: 最大 10 人のユーザーにテストのプッシュまたはメールを送信します。インラインモード (
channelとcampaign_contentを直接渡す) とドラフトモード (draft_idを渡して保存済みドラフトからコンテンツを読み込む) をサポートしています。ドラフトモードは V5 の新機能です。 - Personalized Preview: メッセージを送信せずに、特定のユーザー向けにパーソナライズされたキャンペーンコンテンツの解決済みプレビューを返します。(このエンドポイントは改訂中のため、ドキュメントは一時的に利用できません。)
認証
認証は Basic 認証で行います。認証には、username:password の形式で認証情報を Base64 エンコードした文字列が必要です。
- Username: MoEngage の Workspace ID(App ID とも呼ばれます)を使用します。MoEngage ダッシュボードの Settings > Account > API keys で確認できます。
- Password: Settings > Account > API keys の API キーを使用します。
- 読み取りエンドポイントには View
- キャンペーンの作成と更新には Create & Manage
- キャンペーンの公開には Create, Manage & Publish
よくある質問
Create Campaign
キャンペーンの作成に必要なフィールドは何ですか?
キャンペーンの作成に必要なフィールドは何ですか?
channel (PUSH または EMAIL)、campaign_delivery_type、created_by (キャンペーンを作成するユーザーのメールアドレス) の 3 つです。コンテンツ、オーディエンス、スケジュール、配信制御を含むその他のコンポーネントはすべて任意であり、後から Update Campaign エンドポイントを使用して追加できます。キャンペーンの作成時に完全なキャンペーンコンテンツを含めることはできますか? それとも段階的に構築する必要がありますか?
キャンペーンの作成時に完全なキャンペーンコンテンツを含めることはできますか? それとも段階的に構築する必要がありますか?
DRAFT_CREATE の検証基準を満たす必要があります。request_id はどのようにしてキャンペーンの重複作成を防ぎますか?
request_id はどのようにしてキャンペーンの重複作成を防ぎますか?
request_id は、キャンペーン作成を対象とするべき等性キーです。Push キャンペーンの場合、作成に成功してから 1 時間は同じ request_id を再利用できません。Email キャンペーンの場合、この期間は 1 日です。作成に失敗した場合は、同じ request_id を使用してすぐに再試行できます。Push および Email キャンペーンでサポートされている配信タイプは何ですか?
Push および Email キャンペーンでサポートされている配信タイプは何ですか?
- Push:
ONE_TIME、PERIODIC、EVENT_TRIGGERED、BUSINESS_EVENT_TRIGGERED、DEVICE_TRIGGERED、LOCATION_TRIGGERED、BROADCAST_LIVE_ACTIVITY - Email:
ONE_TIME、PERIODIC、EVENT_TRIGGERED、BUSINESS_EVENT_TRIGGERED
作成のレート制限はどのようになっていますか?
作成のレート制限はどのようになっていますか?
- リクエストレート: 1 秒あたり 5 件、1 分あたり 25 件、1 時間あたり 100 件。
- キャンペーン作成: 成功した作成が 1 分あたり 5 件、1 時間あたり 25 件、1 日あたり 100 件。
ユーザー属性を使用してキャンペーンコンテンツをパーソナライズするにはどうすればよいですか?
ユーザー属性を使用してキャンペーンコンテンツをパーソナライズするにはどうすればよいですか?
title、message、subject、html_content などのコンテンツフィールドでテンプレート式をサポートしています。配信時にユーザー属性を参照するには、次の構文を使用します。API で作成したキャンペーンは MoEngage ダッシュボードにどのように表示されますか?
API で作成したキャンペーンは MoEngage ダッシュボードにどのように表示されますか?
DRAFT ステータスのキャンペーンは、その後の API 呼び出しで更新できます。同じ Email キャンペーンのリクエストで custom_template_id と html_content の両方を渡すことはできますか?
同じ Email キャンペーンのリクエストで custom_template_id と html_content の両方を渡すことはできますか?
custom_template_id と html_content は相互に排他的です。同じリクエストで両方のフィールドを送信すると、検証エラーが返されます。MoEngage の Email Template ライブラリに保存されたテンプレートを参照する場合は custom_template_id を、生の HTML を直接指定する場合は html_content を使用してください。キャンペーンの作成時にカスタムセグメントをターゲットにするにはどうすればよいですか?
キャンペーンの作成時にカスタムセグメントをターゲットにするにはどうすればよいですか?
filter_type: custom_segments を使用して、segmentation_details.included_filters 内でセグメントの参照を渡します。セグメント ID と名前は、MoEngage ダッシュボードの Segments で確認できます。excluded_filters の下で同じ構造を使用します。ユーザー属性、アクション、カスタムセグメントなど複数のフィルタータイプを、filter_operator (and / or) を使用して同じ filters 配列内で組み合わせることができます。Get Campaign
キャンペーンを取得するにはどの識別子を使用しますか?
キャンペーンを取得するにはどの識別子を使用しますか?
campaign_id パスパラメーターを使用します。これは、キャンペーンの作成時または検索時に返される 24 文字の ObjectId です。GET /v5/campaigns/{campaign_id} リクエストで渡してください。レスポンスの campaign_id と id の違いは何ですか?
レスポンスの campaign_id と id の違いは何ですか?
campaign_id はキャンペーンのすべてのバージョンで同じ値が維持される、安定した正規の識別子です。id フィールドは、個々のバージョンドキュメントに固有の生の ObjectId です。バージョン間でドラフト、公開済みキャンペーン、分析を関連付けるには campaign_id を使用してください。このエンドポイントで返されるキャンペーンステータスは何ですか?
このエンドポイントで返されるキャンペーンステータスは何ですか?
DRAFT、SCHEDULED、ACTIVE、SENDING、PAUSED、SENT、STOPPED、ARCHIVED のいずれかになります。Update Campaign
キャンペーンが Active になった後に編集できないフィールドはどれですか?
キャンペーンが Active になった後に編集できないフィールドはどれですか?
- Active:
trigger_condition、segmentation_details、conversion_goal_details、スケジュールタイプ、スケジュール開始日は編集できません。 - Scheduled: スケジュールタイプを除くすべてのフィールドを編集できます。
- Stopped / Archived: どのフィールドも更新できません。
Event-triggered キャンペーンで、更新したコンテンツがユーザーに届くまでにどのくらいかかりますか?
Event-triggered キャンペーンで、更新したコンテンツがユーザーに届くまでにどのくらいかかりますか?
更新時にキャンペーンの完全なペイロードを送信する必要がありますか?
更新時にキャンペーンの完全なペイロードを送信する必要がありますか?
campaign_content オブジェクト全体を含めます。キャンペーンの更新に必要な API スコープは何ですか?
キャンペーンの更新に必要な API スコープは何ですか?
campaigns:create_manage スコープが必要です。キャンペーンが Active のときにセグメンテーションのオーディエンスを更新できますか?
キャンペーンが Active のときにセグメンテーションのオーディエンスを更新できますか?
ACTIVE 状態のキャンペーンでは、segmentation_details フィールドを更新できません。オーディエンスを変更するには、キャンペーンを停止して新しいキャンペーンを作成してください。キャンペーンの状態別の編集不可フィールドの完全な一覧については、キャンペーンが Active になった後に編集できないフィールドはどれですか?を参照してください。更新したコンテンツはいつユーザーに届きますか?
更新したコンテンツはいつユーザーに届きますか?
- Event-triggered キャンペーン: 更新されたコンテンツはキャッシュされるため、更新が成功してからユーザーに反映されるまでに最大 30 分かかる場合があります。
- Periodic キャンペーン: 更新された設定は、次回のスケジュール実行から適用されます。
- One-time キャンペーン: 変更は、更新時点でまだ送信されていないメッセージに適用されます。
更新リクエストで使用するキャンペーン ID はどのように確認できますか?
更新リクエストで使用するキャンペーン ID はどのように確認できますか?
campaign_id は、Create Campaign レスポンスの data.id フィールドで返されます。GET /v5/campaigns/{campaign_id} を使用するか、Search Campaigns エンドポイントを使用して名前、ステータス、チャネル、配信タイプでキャンペーンを検索して取得することもできます。Active な Push キャンペーンでテンプレートタイプを変更できますか?
Active な Push キャンペーンでテンプレートタイプを変更できますか?
template_type フィールドは campaign_content の一部であり、ACTIVE 状態のキャンペーンでも更新できます。テンプレートタイプごとに必須フィールドが異なるため、テンプレートタイプを変更する場合は、新しいテンプレートに必要なすべてのフィールドを同じリクエストに含めてください。Active な Push キャンペーンでプラットフォームを追加または削除できますか?
Active な Push キャンペーンでプラットフォームを追加または削除できますか?
basic_details の platforms フィールドは、ACTIVE キャンペーンでも制限されていません。プラットフォームを追加すると、以降の送信でそのプラットフォームにも配信されるようになり、プラットフォームを削除するとそのプラットフォームへの配信が停止します。Validate Campaign
validate を呼び出すと、キャンペーンの状態やコンテンツは変更されますか?
validate を呼び出すと、キャンペーンの状態やコンテンツは変更されますか?
DRAFT_PUBLISH) を実行します。キャンペーンが無効な場合、このエンドポイントはどの HTTP ステータスコードを返しますか?
キャンペーンが無効な場合、このエンドポイントはどの HTTP ステータスコードを返しますか?
200 を返します。キャンペーンが有効かどうかは、レスポンス本文の valid フィールド (true または false) と、検証エラーを一覧表示する errors 配列で示されます。このエンドポイントにはべき等性キーが必要ですか?
このエンドポイントにはべき等性キーが必要ですか?
Idempotency-Key ヘッダーは不要です。Update Campaign Status
このエンドポイントはどのステータス遷移をサポートしていますか?
このエンドポイントはどのステータス遷移をサポートしていますか?
このエンドポイントを使用してキャンペーンを公開できますか?
このエンドポイントを使用してキャンペーンを公開できますか?
Periodic または Event-triggered キャンペーンを停止できますか?
Periodic または Event-triggered キャンペーンを停止できますか?
STOP は無効です。実行中の Periodic または Event-triggered キャンペーンを一時的に停止するには PAUSE を、再開するには RESUME を使用してください。Periodic キャンペーンに STOP を実行しようとすると、422 Unprocessable Entity エラーが返されます。SENDING 状態の One-time キャンペーンを停止できますか?
SENDING 状態の One-time キャンペーンを停止できますか?
STOP は、SCHEDULED、ACTIVE、PAUSED、SENDING 状態の One-time キャンペーンで有効です。キャンペーンが SENDING 状態の場合、このアクションにより残りの送信が停止されます。停止が処理される前にすでに送信されたメッセージは、引き続き配信されます。このエンドポイントはどのキャンペーンタイプとチャネルをサポートしていますか?
このエンドポイントはどのキャンペーンタイプとチャネルをサポートしていますか?
- Push: Periodic および Event-triggered キャンペーン。
- Email: Periodic および Event-triggered キャンペーン。
- 両方のチャネル: Scheduled 状態の One-time キャンペーンの停止。
Search Campaigns
ドラフト状態のキャンペーンは、デフォルトで検索結果に含まれますか?
ドラフト状態のキャンペーンは、デフォルトで検索結果に含まれますか?
campaign_fields.status 配列に DRAFT を明示的に含めない限り、DRAFT 状態のキャンペーンは結果から除外されます。これにより、結果にドラフト行が含まれることを想定していない既存の連携との後方互換性が維持されます。1 ページあたりに返されるキャンペーンの最大数はいくつですか?
1 ページあたりに返されるキャンペーンの最大数はいくつですか?
limit および page パラメーターを使用してください。どのキャンペーンがフローに属しているかを識別するにはどうすればよいですか?
どのキャンペーンがフローに属しているかを識別するにはどうすればよいですか?
flow_name および flow_id フィールドを確認してください。これらのフィールドが存在する場合、そのキャンペーンはフロー内のノードです。キャンペーンのバージョン管理は検索結果にどのように影響しますか?
キャンペーンのバージョン管理は検索結果にどのように影響しますか?
campaign_id を共有します。campaign_fields オブジェクトで version_number によってフィルタリングすると、結果を特定のバージョンに絞り込むことができます。SMS キャンペーンを検索するにはどうすればよいですか?
SMS キャンペーンを検索するにはどうすればよいですか?
campaign_fields.channels 配列に "SMS" を含めます。一致した結果では channel: SMS が返され、各キャンペーンオブジェクトに SMS 固有のフィールドである connector (コネクタータイプと名前) と sender_name が含まれます。V5 では SMS キャンペーンの作成と更新はサポートされていないため、このエンドポイントでは既存の SMS キャンペーンの取得のみが可能です。フローの一部であるキャンペーンを取得するにはどうすればよいですか?
フローの一部であるキャンペーンを取得するにはどうすればよいですか?
include_child_campaigns: true を設定します。フローノードのキャンペーンは、デフォルトでは結果から除外されます。このフラグを有効にすると、フローノードのキャンペーンが flow_id と flow_name が設定された状態で結果に表示されます。このフラグを設定すると、Periodic の子キャンペーンも parent_id フィールド付きで表示されます。アーカイブされたキャンペーンを検索結果に含めるにはどうすればよいですか?
アーカイブされたキャンペーンを検索結果に含めるにはどうすればよいですか?
include_archive_campaigns: true を設定します。campaign_fields.status に ARCHIVED が指定されているかどうかにかかわらず、アーカイブされたキャンペーンはデフォルトで除外されます。含めるには、このフラグを true に設定する必要があります。送信者名で SMS キャンペーンをフィルタリングできますか?
送信者名で SMS キャンペーンをフィルタリングできますか?
sender_name フィルターはありません。特定の送信者の SMS キャンペーンを見つけるには、campaign_fields.channels に "SMS" を渡してすべての SMS キャンペーンを取得し、各結果で返される sender_name フィールドでクライアント側でフィルタリングしてください。Get Campaign Meta
リーチ情報はすべてのキャンペーンタイプで利用できますか?
リーチ情報はすべてのキャンペーンタイプで利用できますか?
API 呼び出しのたびにリーチを更新できますか?
API 呼び出しのたびにリーチを更新できますか?
このエンドポイントはどのチャネルをサポートしていますか?
このエンドポイントはどのチャネルをサポートしていますか?
rejection_comment フィールドはどこに表示されますか?
rejection_comment フィールドはどこに表示されますか?
DRAFT ステータスのままである間、メタレスポンスに rejection_comment フィールドが表示されます。Test Campaign
キャンペーンを保存せずにテストを送信できますか?
キャンペーンを保存せずにテストを送信できますか?
channel と campaign_content を直接含めて、インラインモードを使用してください。コンテンツはサーバーに保存されません。Email のインラインテストでは、connector オブジェクトも含めてください。保存済みのキャンペーンを使用してテストするには、ドラフトモードを使用して代わりに draft_id を渡します。テスト送信の受信者の最大数はいくつですか?
テスト送信の受信者の最大数はいくつですか?
identifier_values 配列を使用して、一度に最大 10 人のユーザーにテストを送信できます。特定のプラットフォーム、ロケール、またはバリエーションでキャンペーンをテストできますか?
特定のプラットフォーム、ロケール、またはバリエーションでキャンペーンをテストできますか?
test_campaign_meta.platform (ANDROID、IOS、または WEB)、locale_name、または variation を指定します。MoEngage ユーザーではない受信者にテストを送信できますか?
MoEngage ユーザーではない受信者にテストを送信できますか?
identifier タイプとして EMAIL を使用し、受信者のメールアドレスを指定します。テストは送信されますが、MoEngage に一致するユーザーレコードが存在しないため、コンテンツはユーザープロファイルデータでパーソナライズされません。Push キャンペーン
プッシュ通知テンプレートのテンプレート ID はどのように確認できますか?
プッシュ通知テンプレートのテンプレート ID はどのように確認できますか?
template_id が含まれます。Push キャンペーンを作成または更新する際に、この値を campaign_content ペイロードの custom_template_id として渡してください。特定の Push テンプレートタイプで必須となるフィールドはどのように確認できますか?
特定の Push テンプレートタイプで必須となるフィールドはどのように確認できますか?
template_type によって異なります。キャンペーンコンテンツペイロードの basic_details オブジェクトで template_type を設定します。Android でサポートされている値は、BASIC、STYLIZED_BASIC、SIMPLE_IMAGE_CAROUSEL、IMAGE_BANNER_WITH_TEXT、TIMER、TIMER_WITH_PROGRESS_BAR、Custom です。iOS でサポートされている値は、BASIC、STYLIZED_BASIC、SIMPLE_IMAGE_CAROUSEL、Custom です。Custom テンプレートタイプでは、custom_template_id が必須です。その他のタイプについては、Create Campaign リファレンスの campaign_content スキーマで、テンプレートタイプごとの必須フィールドと任意フィールドの完全な一覧を参照してください。SMS キャンペーン
V5 を使用して SMS キャンペーンを作成または更新できますか?
V5 を使用して SMS キャンペーンを作成または更新できますか?
SMS キャンペーンの送信者名はどのように確認できますか?
SMS キャンペーンの送信者名はどのように確認できますか?
sender_name フィールドには、キャンペーンに設定された送信者名が含まれます。このフィールドは SMS キャンペーンでのみ設定されます。Search Campaigns リクエストには sender_name フィルターはありません。特定の送信者のキャンペーンを見つけるには、すべての SMS キャンペーンを取得し、クライアント側で sender_name によってフィルタリングしてください。SMS キャンペーンのコネクター設定はどのように取得できますか?
SMS キャンペーンのコネクター設定はどのように取得できますか?
connector オブジェクトには、キャンペーンの connector_type と connector_name が含まれます。SMS キャンペーンの場合、これらのフィールドはワークスペースで設定された SMS 配信プロバイダーを示します。Personalized Preview
Personalized Preview エンドポイントはどのチャネルをサポートしていますか?
Personalized Preview エンドポイントはどのチャネルをサポートしていますか?
PUSH、EMAIL、SMS をサポートしています。リクエスト本文の channel フィールドで対象のチャネルを渡してください。このエンドポイントはユーザーにメッセージを送信しますか?
このエンドポイントはユーザーにメッセージを送信しますか?
このエンドポイントはどのパーソナライズソースを解決しますか?
このエンドポイントはどのパーソナライズソースを解決しますか?
イベントトリガー型キャンペーンのコンテンツをプレビューするにはどうすればよいですか?
イベントトリガー型キャンペーンのコンテンツをプレビューするにはどうすればよいですか?
event_attributes オブジェクトで渡します。エンドポイントは解決時にこれらの値を挿入し、特定のイベントに対してコンテンツがどのようにレンダリングされるかをシミュレートします。例:{{ event.product_name }} を使用してこれらの値を参照します。カスタムテンプレートを使用するコンテンツをプレビューするにはどうすればよいですか?
カスタムテンプレートを使用するコンテンツをプレビューするにはどうすればよいですか?
campaign_content オブジェクトに custom_template_id を渡します。エンドポイントはテンプレートを取得して解決し、指定したユーザー向けに完全にレンダリングされた出力を返します。Personalized Preview エンドポイントで保存済みのドラフトを使用できますか?
Personalized Preview エンドポイントで保存済みのドラフトを使用できますか?
campaign_content で渡されたインラインコンテンツのみを受け付けます。保存済みのドラフトからコンテンツを読み込むことはありません。保存済みのドラフトからテストメッセージを送信するには、draft_id を指定して Test Campaign エンドポイントを使用してください。