Skip to main content
MoEngage Data API は、MoEngage 内のデータ管理を支援するように設計された包括的なエンドポイント群を提供します。この API を使用すると、ユーザープロファイルの作成と更新、ユーザーのアクション (イベント) のトラッキング、デバイス情報の管理、一括インポートおよびファイルインポート操作による大規模なデータ取り込みを行うことができます。

エンドポイント

Data API は、次の API エンドポイントで構成されています。
  • Track User: MoEngage でユーザーとユーザープロパティを追加または更新します。
  • Get User: ユーザーの情報を取得します。
  • Merge User: ID に基づいて MoEngage 内の 2 人のユーザーを統合します。
  • Delete User: MoEngage のユーザーを削除します。
  • Track Event: ユーザーのアクションをトラッキングします。
  • Track Device: MoEngage でデバイスとデバイスプロパティを追加または更新します。
  • Device Opt-out: 特定のデバイスがプッシュ通知を受信できないようにブロック、またはブロックを解除します。
  • Trigger File Imports: スケジュールされたファイルインポートをトリガーします。
  • Import Details: インポートレベルでステータスを取得します。
  • Import File Run History: インポートに含まれる各ファイルのファイル処理ステータスを取得します。
  • Bulk Import: 複数のユーザーリクエストとイベントリクエストをバッチで MoEngage に送信します。
  • Install Tracking: MoEngage でインストールのアトリビューションデータをトラッキングします。
  • Test connection: 入力されたエンドポイントの詳細が有効かどうかを検証します。
  • MoEngage で User Identity Resolution 機能が有効になっているワークスペースでは、次の Data API を使用して、Settings > Data > Identity Resolution で設定された特定の識別子 (携帯電話番号やメール ID など) を使用してユーザーを作成または更新します。
    • Track User
    • Create Event
    • Bulk Import
    詳細については、User Identity Resolution を参照してください。 次のことが可能です。
    • ID を持たない (ただし他の識別子を持つ) ユーザーでも、Server-to-Server Data API を通じてユーザーを作成できます。
    • ID 以外の識別子 (メール ID や電話番号など) がわかっている場合に、ユーザーを作成したり、ユーザーのイベントをトラッキングしたりできます。
  • Data API は IP ホワイトリストをサポートしています。IP アドレスをホワイトリストに登録するには、MoEngage サポートチームにお問い合わせください。設定後、MoEngage はこれらのホワイトリストに登録された IP から送信された API ペイロードのみを取り込みます。

Data の認証

MoEngage Data API は、Basic 認証と OAuth 2.0 の 2 つの認証方法をサポートしています。Data API リクエストにはどちらの方法でも使用できます。
認証は Basic 認証で行われます。これには、‘username:password’ の形式で認証情報を base64 エンコードした文字列が必要です。
  • ユーザー名: MoEngage のワークスペース ID (App ID とも呼ばれます) を使用します。MoEngage ダッシュボードの Settings > Account > APIs > Workspace ID (earlier app id) で確認できます。
  • パスワード: Data タイル内にある API キーを使用します。
Data API キーを生成して保存した後は、セキュリティ侵害がない限り新しいキーを生成しないでください。別の Data API キーを生成して保存すると、古いキーでの認証が失敗し始めるため、既存のデータトラッキングを更新して新しいキーを使用する必要があります。
認証と認証情報の取得の詳細については、認証情報の取得を参照してください。

リクエスト本文

リクエスト本文には、customer_id という必須フィールドが含まれます。これは、MoEngage SDK から USER_ATTRIBUTE_UNIQUE_ID として設定および渡される一意の識別子で、ダッシュボードでは ID として表示されます。 customer_id は次の目的で使用されます。
  • MoEngage でユーザーを識別または作成する。
  • MoEngage で、イベントを対応する一意のユーザープロファイルに関連付ける。
MoEngage で Data API リクエストを受信すると、customer_id を使用してユーザーが MoEngage に存在するかどうかが確認されます。ユーザーが存在しない場合は、属性またはイベントを使用して新しいユーザーが作成されます。
  • リクエスト本文の上限は 128 KB です。
  • customer_id には、次の値を除き、1 文字を超える任意の文字列を使用できます - [‘unknown’, ‘guest’, ‘null’, ‘0’, ‘1’, ‘true’, ‘false’, ‘user_attribute_unique_id’, ‘(empty)’, ‘na’, ‘n/a’, ”, ‘dummy_seller_code’, ‘user_id’, ‘id’, ‘customer_id’, ‘uid’, ‘userid’, ‘none’, ‘-2’, ‘-1’, ‘2’]
各要素の type フィールドは大文字と小文字が区別され、小文字 (customer、event、または device) である必要があります。レコードが処理されず、ユーザー、イベント、またはデバイスが作成されない場合は、type の値が小文字であることを確認してください。Customer のように大文字と小文字が異なる値は受け付けられません。
たとえば、次のリクエストを使用して作成されたユーザーは、表示されているとおりにダッシュボードのユーザープロファイルに表示されます。

リクエスト本文のサンプル

以下は、Create User API のリクエスト本文のサンプルです。
イベント、イベント属性、またはユーザー属性の命名時に、プレフィックスとして “moe_” を使用することはできません。これはシステムプレフィックスであり、使用すると事前の通知なく定期的にブラックリストに登録される可能性があります。

サポートされている日時形式

リクエスト本文では、次の形式で日時を渡すことができます。
MoEngage は、システムにデータを取り込む前に、日時形式に対して次の検証を実行します。
  • 未来および過去の日付値は受け付けられ、取り込まれます。
  • 不正なカレンダー値を含む日付値 (例: 15 が有効な月ではない 2019-15-12) は、文字列として取り込まれます。
  • 上記の形式と互換性のない日時値は、文字列に変換されてから取り込まれます。
user_time および current_time フィールド (Track Event および Bulk Import) では、MoEngage は次の形式のみを受け付けます。
  • 秒単位のエポック時間 (10 桁) — 例: 1710740192
  • ISO-8601 文字列 — 例: 2020-05-31T16:33:35Z
ミリ秒単位のエポック時間 (13 桁) は受け付けられません。 user_time または current_time がサポートされていない形式や解析できない形式で送信された場合、MoEngage はリクエストを拒否しません。代わりに、サーバーが受信した (Kafka) 時刻を使用してイベントが取り込まれるため、イベントの記録時刻が送信しようとした時刻と異なる場合があります。

レスポンス

Data API のレスポンスは JSON オブジェクトです。Data API リクエストが成功すると、次のレスポンスが返されます。
Data API リクエストが失敗すると、次のレスポンスが返されます。

レスポンスコード

リクエストがエラーになった場合、次のステータスコードと関連するエラーメッセージが返されます。

使用状況のモニタリング

レート制限のあるエンドポイントは、すべてのレスポンスで次のヘッダーを返します。これにより、連携では 429 を待つのではなく、残りの容量をリアルタイムで追跡できます。
monitor_your_usage.png
一部の高スループットのエンドポイント (Push API など) では、代わりに x-envoy-ratelimited: true ヘッダーでスロットリングを通知します。エンドポイントが返すヘッダーについては、各エンドポイントのリファレンスページを確認してください。

上限に達した場合

リクエストが HTTP 429 で拒否された場合:
  1. ウィンドウがリセットされる (x-ratelimit-reset) まで、そのエンドポイントへのリクエストの送信を停止します。
  2. すぐに再試行するのではなく、指数バックオフを使用して再試行します。
  3. エンドポイントがサポートしている場合はバッチ処理を行います。たとえば、ユーザーごとに 1 回呼び出すのではなく、1 回の Track User リクエストで複数のユーザー更新を送信します。
適切にバッチ処理された正当な使用で連携が常に上限に近づいている場合は、CSM またはサポートチームに連絡して、上限の引き上げをリクエストしてください。

ユーザー属性

ユーザー属性の予約キーワード

以下は、ユーザー属性をトラッキングする際に使用してはならないキーの一覧です。
  • USER_ATTRIBUTE_UNIQUE_ID
  • USER_ATTRIBUTE_USER_EMAIL
  • USER_ATTRIBUTE_USER_MOBILE
  • USER_ATTRIBUTE_USER_NAME
  • USER_ATTRIBUTE_USER_GENDER
  • USER_ATTRIBUTE_USER_FIRST_NAME
  • USER_ATTRIBUTE_USER_LAST_NAME
  • USER_ATTRIBUTE_USER_BDAY
  • USER_ATTRIBUTE_NOTIFICATION_PREF
  • USER_ATTRIBUTE_OLD_ID
  • MOE_TIME_FORMAT
  • MOE_TIME_TIMEZONE
  • USER_ATTRIBUTE_DND_START_TIME
  • USER_ATTRIBUTE_DND_END_TIME
  • MOE_GAID
  • INSTALL
  • UPDATE
  • MOE_ISLAT
  • status
  • user_id
  • source

ユーザープロファイルダッシュボード

Data API を通じてデータを送信すると、次に示すようにユーザープロファイルに反映されます。 新しいユーザープロファイル

制限

Data API は、お客様全体で大量のデータを処理できるように設計されています。API を責任を持って使用していただくために、API の制限を設けています。レート制限については、各エンドポイントのドキュメントを参照してください。
  • 要件がデフォルトの制限を超える場合は、MoEngage サポートチームに連絡して制限を引き上げることができます。
  • 高頻度のユーザーデータ取り込みについては、フェアユースポリシー (FUP) を必ず遵守してください。これは、ワークスペースでのデータ処理の中断を防ぐために必須です。詳細については、フェアユースポリシー (FUP) を参照してください。

よくある質問

Track User

5xx エラーによるデータ損失を防ぐため、リクエストの指数バックオフを試してください。
MoEngage からレスポンスとして 200 ステータスコードが返されることは、API ペイロード内のユーザーが処理のために受け付けられたことを示すだけです。MoEngage に送信されたユーザーが正常に取り込まれたことを保証するものではありません。
ただし、取り込みに失敗することはごくまれです。新しく取り込まれたユーザーは次の場所で検索できます:
Segment > Create Segment > ID を使用してユーザーを検索
ユーザーをエクスポートするには、Get User API を使用してください。
MoEngage の既存のユーザーを削除するには、Delete User API を使用してください。

Get User

利用可能なすべてのユーザーは users キーに、利用できないユーザーは users_not_found キーに含まれます。このドキュメントのサンプルレスポンスを参照してください。
user_fields_to_export を渡さない場合、すべてのカスタム属性とエクスポート可能な標準属性が返されます。特定のフィールドを取得するには、必要なフィールドのリストとともに user_fields_to_export を渡す必要があります。

Merge User

いいえ。この API を呼び出すと、統合されたユーザーは削除されます。統合されたユーザーのすべてのユーザー属性とデバイスは、保持されるユーザーに移行されます。
ユーザーのリーチステータスは、ユーザーの統合後に存在するデバイスに基づいて再計算されます。
MoEngage システムに存在する登録済みユーザーであれば、作成元にかかわらず、別の登録済みユーザーと統合できます。
必ずしもそうではありません。デバイスの有無にかかわらず、ユーザーを統合できます。
いいえ。
いいえ。
このユーザーは削除され、このユーザーにデバイスが関連付けられている場合は、それらのデバイスが retained_user に関連付けられます。merged_user のすべてのイベントとユーザーの詳細は、retained_user に反映されます。統合イベント MOE_USER_MERGE_EVENT が merged_user (この時点で MoEngage ID のみを持つ) に追加されます。
retained_user は、自身の既存の詳細に加えて、merged_user のすべてのユーザー、デバイス、イベントの詳細を持つようになります。MOE_USER_MERGED イベントが retained_user に追加されます。
その ID で新しいユーザーが作成されますが、このユーザーの MoEngage ID は削除されたユーザーとは異なります。
そのユーザーにはリーチできません。
最大 SLA は 30 分です。
ユーザープロファイルでは、過去 30 日間のすべてのイベントが、統合されたユーザーから保持されるユーザーに移動されます。

Delete User

削除操作を元に戻すためのロールバックの仕組みはありません。削除リクエストが処理されると、ユーザーは MoEngage から削除されます。
いいえ。ユーザーに対応するイベントが個別に削除されることはありません。削除 API リクエストが処理されると、ユーザーとユーザー属性のみが削除されます。ただし、ユーザーが MoEngage から削除されると、そのユーザーに対応するイベントにはアクセスできなくなります。たとえば、イベントがセグメンテーションクエリで使用されている場合、そのイベントを実行した削除済みユーザーは、計算されたセグメントやキャンペーンに追加されません。
MoEngage ダッシュボードで Segment -> Create Segment に移動します。削除されたユーザーの一意の識別子 (ID、MoEngage ID、電話番号、メールアドレス、または設定したその他の一意の識別子) を入力します。ユーザーが削除 (完全削除) されている場合、検索結果は表示されません。ユーザーの検索の詳細については、[Search User in Segmentation] を参照してください。

Create Event

ペイロード内のイベントは、そのイベントを実行した特定のユーザーにマッピングする必要があります。顧客にマッピングされたイベントを識別するには、Customer ID を使用する必要があります。
いいえ。匿名ユーザーは MoEngage SDK を使用してトラッキングできます。
MoEngage のイベントはイミュータブル (不変) です。つまり、イベントは作成のみが可能で、更新や削除はできません。

Track Device

いいえ。渡すことができるのは、上記のデバイス属性のみです。API ペイロードで渡された追加のカスタム属性は、処理中に破棄されます。
デバイスは Android プラットフォームに基づいて作成され、API で渡された IDFV の値は破棄されます。プラットフォームが iOS で GAID の値が渡された場合、デバイスは iOS で作成されますが、GAID 属性は破棄されます。
1 人のユーザーに対して最大 1000 台のデバイスを作成できます。ユーザーに対して 1001 台目のデバイスが作成されると、そのユーザーはブロックされます。
このような場合、既存のデバイスが削除され、新しいデバイスが追加されます。

MoEngage Streams

各 API リクエストのスループットと平均ボリュームは、MoEngage に取り込まれる選択したイベントのボリュームによって異なります。デフォルトのバッチサイズ (API リクエストごとのイベント数) は 100 です。
再試行の仕組みにより、MoEngage は指定されたエンドポイントに複数回リクエストを送信できます。イベントのバッチが失敗した場合 (エンドポイントからの “2XX” 以外のレスポンスはすべて失敗とみなされます)、バッチ全体が再試行されます。MoEngage は、次の間隔で合計 3 回の再試行を行います。
  • 1 回目の再試行: 30 秒
  • 2 回目の再試行: 60 秒
  • 3 回目の再試行: 120 秒
Streams を一時停止すると、エクスポート用のデータは収集されないため、後日再生することはできません。
いいえ。Streams は主に、イベントをほぼリアルタイムでエクスポートするために構築されています。MoEngage のユーザー属性は非同期で更新されるため、現時点ではエクスポートでユーザー属性の最新の値を保証することはできません。
現時点では、Streams を設定する前に発生したデータはエクスポートできません。設定後は、エクスポートを有効にした時点から各イベントのデータが表示されるようになります。

Bulk Import

はい。Bulk API リクエスト内では、Track User API の検証が Customer ペイロードタイプに適用され、Create Event API の検証が Event ペイロードタイプに適用されます。
リクエストに指数バックオフ戦略を実装してください。これにより、高負荷の期間中にシステムがリクエストの頻度を徐々に減らし、サーバー側のエラーによるデータ損失を防ぐことができます。
200 OK ステータスコードを受信することは、API ペイロード内のユーザーが処理のために正常に受け付けられたことを示すだけです。取り込み処理が完了したことを保証するものではありません。失敗することはまれですが、MoEngage ダッシュボードでユーザーを検索して取り込みを確認できます: Segment > Create Segment > Search for users に移動し、一意の ID を使用して検索します。

Trigger File Imports

いいえ。スケジュールは、MoEngage ダッシュボードで最初に設定したとおりのままです。

Postman コレクション

API を簡単にテストできるようにしています。Postman でコレクションを表示するには、こちらをクリックしてください。