Skip to main content
MoEngage Offerings API を使用すると、オファリングを管理できます。期間限定のプロモーションやパーソナライズされたコンテンツの作成、既存のオファリングのスケジュールやターゲティングの更新、レポートやオーケストレーションのワークフロー向けのオファリングの一覧表示、オファリングコンテンツで使用可能なパーソナライズテンプレートの一覧表示を行うことができます。
アカウントでこの API が有効になっていない場合は、MoEngage カスタマーサクセスマネージャー(CSM)またはサポートチームに連絡して、有効化をリクエストしてください。

オファリングのライフサイクル

オファリングは、スケジュール期間に基づいて自動的にさまざまな状態に移行します。個別の公開ステップはありません。スケジュール期間が現在の時刻を含む場合、オファリングは作成と同時に公開されます。

エンドポイント

Offerings API は、次のエンドポイントで構成されています。
  • List Offerings: ID、名前、ステータス、タグ、日付範囲、作成者によるフィルタリングを使用して、ページ分割されたオファリングの一覧を返します。
  • Create Offering: コンテンツ、スケジュール、セグメンテーション、バリエーション設定を含むオファリングをワークスペースに作成します。
  • Update Offering: 既存のオファリングを部分的に更新します。リクエストボディに含まれるフィールドのみが変更されます。
  • List Offer Templates: ワークスペースで使用可能なパーソナライズテンプレートのページ分割された一覧を返します。テンプレートの id を、オファリングコンテンツの meta.templateId として使用します。
ID で単一のオファリングを取得するエンドポイントはありません。

認証

認証は Basic 認証で行います。認証には、username:password の形式で認証情報を Base64 エンコードした文字列が必要です。
  • Username: MoEngage の Workspace ID(App ID とも呼ばれます)を使用します。MoEngage ダッシュボードの Settings > Account > API keys で確認できます。
  • Password: Settings > Account > API keys の API キーを使用します。
API キーの作成と管理の詳細については、API Key Dashboard を参照してください。
この API 用の API キーを作成する際は、Select APIs for access で Offerings チェックボックスが選択されていることを確認してください。選択したキーの権限によってアクセスレベルが決まります。
  • 読み取りエンドポイント(オファリングとテンプレートの一覧表示)には View
  • オファリングの作成と更新には Create & Manage
  • オファリングの公開には Create, Manage & Publish
  • オファリングレポートのダウンロードには Download

レート制限

レート制限はコンシューマーごとに適用されます。各エンドポイントには独自の制限があります。 制限を超えると、再試行までに待機する秒数を示す Retry-After ヘッダーとともに 429 レスポンスが返されます。

冪等性

Create エンドポイントと Update エンドポイントには、Idempotency-Key ヘッダー(UUID v4)が必要です。24 時間以内に同じキーを再利用すると、操作を再実行せずに元のレスポンスが返されるため、ネットワーク障害時の再試行を安全に行えます。 次の 2 つの競合ケースでは 409 が返されます。
  • DUPLICATE_IDEMPOTENCY_KEY - 同じキーを持つリクエストが既に処理中です。完了するまで待ってから再試行してください。
  • IDEMPOTENCY_CONFLICT - このキーは 24 時間以内に異なるリクエストボディで既に使用されています。変更したペイロードを送信するには、新しい UUID v4 キーを使用してください。
同じキーは、ネットワーク障害やタイムアウトの後に同一のリクエストを再試行する場合にのみ使用してください。ペイロードが変更されたリクエストを含め、論理的に異なる操作ごとに新しいキーを使用してください。

エラー

Offerings API は標準的な HTTP ステータスコードを使用し、すべてのエラーを一貫した JSON エンベロープで返します。

HTTP ステータスコード

エラーレスポンスの形式

すべての 4xx および 5xx レスポンスは、次の形式の JSON ボディを返します。
details 配列は、400 VALIDATION_FAILED レスポンスにのみ含まれます。その他のエラーコードでは、最上位の error オブジェクトのみが返されます。

一般的なエラーコード

エンドポイントごとのエラーコードの完全な一覧については、各エンドポイントのページを参照してください。Offerings API のすべての操作で最もよく発生するコードは次のとおりです。

よくある質問

はじめに

はい。ワークスペースで Offer Decisioning 機能が有効になっていることを確認してください。有効になっていない場合、すべての API 呼び出しで 403 FORBIDDEN が返されます。有効化をリクエストするには、MoEngage CSM またはサポートチームにお問い合わせください。 Create Offering API を呼び出す前に、次のワークスペースリソースが既に存在することを確認してください。
  • タグ — MoEngage ダッシュボードの Settings → Advanced Settings → Tags で作成および管理します。tags 配列で渡すタグ ID は既に存在している必要があります。
  • オファリング属性 — ダッシュボードの Offer Decisioning → Attributes で設定します。その ID を offering_attribute_configuration で渡します。
  • パーソナライズテンプレート — GET /v5/offers/templates を使用して使用可能なテンプレートを一覧表示し、返された id をコンテンツの meta.templateId として使用します。
MoEngage ダッシュボードで Settings > Account > API keys に移動し、Workspace ID をコピーして、Personalize API へのアクセス権を持つキーを作成します。Workspace ID を Basic Auth のユーザー名として、API キーをパスワードとして使用します。詳しい手順については、認証 を参照してください。

オファリングのライフサイクル

オファリングは常に、scheduled、active、expired、archived、draft の 5 つの状態のいずれかにあります。 状態の完全な一覧については、上記の オファリングのライフサイクル セクションを参照してください。
現在、専用の GET /v5/offers/{offer_id} エンドポイントはありません。特定のオファリングを取得するには、id クエリパラメーターにオファリングの ID(offer_ プレフィックスを含む)を設定して List Offerings を呼び出します。これにより、そのオファリングのみを含む一覧が返されます。

Create Offering

必須の最上位フィールドは、name、priority、delivery、created_by、scheduling(start_datetime と expiry_datetime の両方を含む)、segment_info、offer_content、variation_meta です。その他のフィールド(tags、capping_rules、conversion、imp_track_hours、offering_attribute_configuration)はすべてオプションで、省略できます。
オファリングのステータスとバリエーションの type によって異なります。
  • オファリングが scheduled の間は、variation_meta オブジェクト全体を編集できます。
  • オファリングが active になると、type と variantsPerLocale のキーセットはロックされます。SMV の場合は、引き続き smv_distribution の分割割合と control_group.percentage を更新できます。DMV の場合は、control_group.percentage のみを編集できます。
ロックされたフィールドを編集すると、IMMUTABLE_FIELD が返されます。バリエーションタイプは SMV(ユーザーが制御する静的な割り当て)と DMV(MoEngage が最適化する動的な割り当て)です。
1 回の Create リクエストにすべてのフィールドを含めます。段階的な構築やドラフト作成のフローはありません。オファリングの初期ステータスはスケジュールの日付に基づいて設定されます。start_datetime が未来の場合は scheduled、現在時刻がスケジュール期間内の場合は active、start_datetime が既に過去の場合は expired になります。
priority は 1~100 の整数で、Decision Policy がユーザーに対して対象となるオファリングをランク付けするために使用されます。値が大きいほど、priority が低い他のオファリングと比べて上位にランク付けされます。正確なランク付けの動作は、関連する Decision Policy で設定されたスコアリング式や、offering_attribute_configuration のスコアにも依存します。
オファリング名は 5~100 文字で、英字、数字、アンダースコアのみを含める必要があります。スペース、ハイフン、特殊文字は使用できません。名前はワークスペース内で一意である必要があります。有効な名前の例: Summer_Sale_Promo_2026。

Update Offering

name、description、priority、tags、scheduling(以下の状態に基づくルールの範囲内)、segment_info、offer_content、capping_rules、is_global_control_enabled、imp_track_hours、offering_attribute_configuration、conversion を更新できます。variation_meta も更新できますが、以下で説明するステータスとタイプに基づくルールの範囲内に限られます。
いいえ。Update エンドポイントは PATCH であり、リクエストボディに含めたフィールドのみが変更されます。省略したフィールドは現在の値が保持されます。ただし、tags と offering_attribute_configuration は、含めた場合にマージされるのではなく完全に置き換えられます。タグを 1 つ追加するには、現在のタグリストに新しいタグを加えて送信します。すべてのタグを削除するには、空の配列を送信します。
いいえ。API は EXPIRED_OFFERING または ARCHIVED_OFFERING とともに 403 を返します。更新できるのは、active および scheduled 状態のオファリングのみです。
offer_id(offer_ プレフィックスを含む)は、Create Offering レスポンスの data.id フィールドで返されます。List Offerings を呼び出し、名前またはステータスでフィルタリングして取得することもできます。

冪等性

同じキーは、ネットワークエラーやタイムアウトによって失敗したリクエストを再試行する場合、つまりサーバーが元のリクエストを処理したかどうかがわからない場合にのみ使用してください。24 時間以内に同じキーを再利用すると、操作を再実行せずに元のレスポンスが返されます。 論理的に異なる操作ごと、およびリクエストボディが前回の試行から変更された再試行には、新しいキーを使用してください。
API は 409 IDEMPOTENCY_CONFLICT を返します。元の操作は再実行されず、新しいペイロードも処理されません。新しい UUID v4 キーを生成して再送信してください。
UUID v4(例: 550e8400-e29b-41d4-a716-446655440000)です。自動化されたワークフローでは、個別の操作ごとに新しい UUID v4 を生成してください。キーをリクエストペイロードから派生させないでください。ペイロードが以前のリクエストと同一の場合、意図的な再実行がキャッシュされたレスポンスを返してしまいます。