はじめに
MoEngageは、顧客がS3バケットやSFTPサーバーなどのさまざまなソースに保存されたファイルを通じてユーザーとイベントをインポートできるようにします。また、データウェアハウス内のテーブルから直接インポートすることもできます。MoEngageダッシュボードでは、ファイルの場所を定義し、1つ以上のファイルインポートソースとインポート方法を構成することによって、複数のインポートを直接設定できます。
サポートされているソース
MoEngageは現在、以下のファイルのインポートをサポートしています:
MoEngageはデータウェアハウスからのインポートもサポートしています:
輸入の種類
MoEngageは、あなたのソースから以下をインポートできます:
- 登録ユーザー : これは、MoEngageにすでに登録されているユーザーです。このタイプのインポートを使用して、既存のユーザーを一括で更新することもできます。
- 匿名ユーザー : これらはMoEngageに登録しなければならないユーザーです。
- イベント (標準およびユーザー定義):MoEngageは、キャンペーンインタラクションイベントなどの標準イベントと、あなた自身のユーザー定義イベントをインポートできます。
- 補助データ : 特定のビジネス目的のために、一時的にMoEngageに取り込まれたユーザーデータがあります。
info |
情報 システムがIPホワイトリストを必要とする場合は、データインポートの設定を行う前に、このドキュメント こちら を参照してください。 |
ファイルを準備してください
MoEngage ダッシュボードでインポートを設定する前に、すべてのファイルが期待される形式であり、許可された制限内にあることを確認してください。
サポートされているファイルタイプ
ソース |
S3 インポート
|
SFTP インポート
|
Upload
|
すべてのソース |
|||
---|---|---|---|---|---|---|---|
ファイルタイプ |
ユーザー |
イベント |
ユーザー |
イベント |
ユーザー |
イベント |
Aux |
CSV | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
JSON | ✅ | ✅ | ✅ | ✅ | ❎ | ❎ | ❎ |
すべてのファイルはUTF-8ファイルエンコーディングである必要があります。
命名規則
ファイル名は2つの部分で構成されています:
<import type>_<date time format>
.<file_extension>
。最終的な名前は、インポートの種類と選択した日付時刻形式によって異なります。
インポートタイプ
-
登録ユーザー
-
ファイル名は接頭辞
registered_user_data_
で始まる必要があります -
registered_user_data_01311997.csv
またはregistered_user_data_01311997.json
-
ファイル名は接頭辞
-
匿名ユーザー
-
ファイル名はプレフィックスから始める必要があります
anonymous_user_data_
-
anonymous_user_data_jan_2022.csv
またはanonymous_user_data_jan_2022.json
-
ファイル名はプレフィックスから始める必要があります
-
イベント
-
ファイル名はプレフィックスで始まる必要があります
_ - 特定のケースでは、イベント名と表示名が異なる場合があります。イベントを管理するには、MoEngageの データ管理 ページに移動してください。
-
例えば、イベント名が「Purchase Summary」の場合:
Purchase_Summary_31011997.csv
またはPurchase_Summary_31011997.json
-
例えば、イベント名が "Purchase_Transaction" の場合:
Purchase_Transaction_1997 0131_1259 .csv
またはPurchase_Transaction_19970131_1259.json
-
ファイル名はプレフィックスで始まる必要があります
info |
注意 イベント、イベント属性、またはユーザー属性を命名する際には、必ず「moe_」をプレフィックスとして使用してください。これはシステムのプレフィックスであり、使用しないと事前の通知なしに定期的にブラックリストに載る可能性があります。 |
日付時刻形式
ファイル名は、サフィックス
<date time format>.<file extension>
で終わる必要があります。この「日付-時間」は、インポートが実行される日を表します。たとえば、インポートが「2022年1月7日」に実行され、選択された日付-時間形式が
ddmmyyyy
の場合、MoEngageはサフィックス
07012022.csv
または
07012022.json
で終わるすべてのファイルを探します。
MoEngageは複数の日付時刻形式をサポートしています:
タイプ |
説明 |
例 |
|
|
|
|
|
31012022 |
|
|
20220112 |
|
|
jan_2022 |
|
|
20220131_1259 |
インポートを設定する際に、MoEngage ダッシュボードでファイル名の日時形式を構成できます。
info |
注意 MoEngageは、次の命名規則に従う限り、カスタムファイル名もサポートしています:
命名規則:
ファイル名にはカスタムプレフィックス名と日付時刻形式を "_" で区切って含める必要があります。カスタム名は文字、数字、スペース、および "_" で構成される必要があります。
例えば:
|
有効なファイル名の例
以下は有効なファイル名の例です:
-
登録ユーザーは、日付時刻形式
{yyyymmdd}_{hhmm}
のファイル名を持ちます。例えば、registered_user_data_20220131_1259.csv
またはregistered_user_data_20220131_1259.json
-
匿名ユーザーのインポートは、日付時刻形式
{mon_yyyy}
で、ファイル名はanonymous_user_data_feb_2022.csv
またはanonymous_user_data_feb_2022.json
のようになります。 -
アイテム購入イベントのインポートは、日付時刻形式
{ddmmyyyy}
で、ファイル名はアイテムPurchased_31012022.csv
またはPurchased_31012022.json
のようになります。
ファイル構造
MoEngageはCSVおよびJSONファイルからのデータのインポートをサポートしています。あなたのファイルは以下のルールに従う必要があります:
MoEngageは、カンマ区切りのCSVファイルを使用してユーザーおよびイベントデータのインポートをサポートしています。すべてのファイルはUTF-8ファイルエンコーディングである必要があります
- ファイルの最初の行は列名でなければなりません。MoEngageは常にファイルの最初の行をヘッダー行として扱います。
- ファイル内に重複した列名がないことを確認してください。列名は大文字と小文字を区別することに注意してください。
- 列名が欠けていないことを確認してください。
- MoEngageは区切り文字としてカンマ(,)のみをサポートしています。
- 空の行を避けてください(行が空であるか、その行のすべての列が空であるかのいずれか)。
MoEngageは、ファイルの最初の行をヘッダーファイルとして認識し、列名を解析します。その後、MoEngageダッシュボードのMoEngage属性にマッピングするか、マニフェストファイルをアップロードすることを選択できます。
サンプルファイル
ここにいくつかのサンプルファイルがあります:
MoEngageは、Newline-Delimited JSON (NDJSON)ファイルを使用して、ユーザーおよびイベントデータのインポートをサポートしています。すべてのファイルはUTF-8ファイルエンコーディングである必要があります。
NDJSONフォーマット
あなたのJSONファイルはNDJSON形式に準拠している必要があります。ファイル拡張子は.jsonであり、ファイル内の各行は完全で自己完結したJSONオブジェクトであり、各オブジェクトは改行文字で区切られています。
{"user_id": "user123", "name": "John Doe", "email": "john.doe@example.com", "address": {"city": "New York", "zip": "10001"}}
{"user_id": "user124", "name": "Jane Smith", "email": "jane.smith@example.com", "address": {"city": "Los Angeles", "zip": "90001"}, "preferences": ["email_updates", "sms_alerts"]}
Here are some sample files:
ファイル構造とマッピングJSONレベル
JSONファイルをアップロードまたは選択すると、MoEngageはデータのフラットで表形式のプレビューを生成します。このプレビューは、2レベル深く(ルートレベル + 1つのネストされたレベル)のキーを個別の列として表します:
{
"Level 1 item-id": 123,
"Level 1 item-type": "books",
"Level 1 item-cost": {
"Level 2 amount": {
"Level 3 cost-price": 100,
"Level 3 discount": 0
},
"Level 2 currency": "USD"
}
}
マッピング機能
- プリミティブキーのマッピング : レベル1またはレベル2からの任意のプリミティブキーを標準のMoEngage属性に直接マッピングできます。
- オブジェクト全体またはオブジェクトの配列をマッピングする : 完全なJSONオブジェクトまたはオブジェクトの配列を、それぞれ「オブジェクト」または「オブジェクトの配列」というタイプの単一のMoEngage属性にマッピングできます。オブジェクト全体がマッピングされると、その内部構造とすべてのネストされたキーが保持され、インポートされます。これらのキーをMoEngage内で名前変更することはできません。
- 特定のフィールドの選択 : オブジェクトから特定のプリミティブフィールド(レベル2まで)だけをマッピングしたい場合は、マッピングテーブルで親オブジェクト属性をスキップし、その後に個々のネストされたプリミティブキーをマッピングする必要があります。
-
マニフェストファイル
: マニフェストファイルを使用して、JSONキーのマッピングを自動化できます。マニフェストファイルは、フラット化されたJSONパスを参照します(例えば、
"column": "user_profile.id"
)
マップの制限
オブジェクトの配列内のレベル2キー : オブジェクトの配列内にネストされた個々のレベル2キーを直接マッピングすることはできません。オブジェクトの配列全体を「オブジェクトの配列」属性にマッピングすることができ、その完全なネスト構造をインポートします。
データ取り込み中の動作
- ヌルまたは空の文字列 : JSONファイル内のマッピングされたキーの値がヌルまたは空の文字列の場合、MoEngageはそれをスキップし、対応するデータを更新しません。
- 未マッピング/スキップされたキー : JSONファイル内の明示的にマッピングされていない、またはスキップされたとマークされていない追加キーは無視され、インポートプロセス中にMoEngageに取り込まれません。
各種インポートタイプについて、MoEngageでは必須属性にマッピングできる列を持つ必要があります:
- 登録ユーザーのインポート: あなたのファイルには、ユーザーID(MoEngageのユーザープロファイルを識別するためのユーザー識別子)にマッピングできる列が必要です。
- 匿名ユーザーのインポート: あなたのファイルには、匿名IDにマッピングできる列(メール、モバイルなど)が必要です。メールアドレスやモバイルなどの匿名IDは、アプリやウェブサイトを利用したがまだサインアップしていないユーザーを特定するのに役立ちます。
- イベントインポート: ファイルにはイベント時間とユーザーIDのための別々の列が必要です。
マニフェストファイル
マニフェストファイルには、ソース列とMoEngage属性とのマッピングが含まれています。それは列のデータ型も含まれています。このファイルはJSON形式でなければなりません。マニフェストファイルの例は以下に示されています。MoEngageダッシュボードを使用すると、CSVまたはJSONファイルの列をMoEngage内の属性にマッピングできます。または任意で、マニフェストファイルをアップロードすることもできます。
{
"mapping": [
{
"column": "ID",
"moe_attr": "uid",
"type": "string",
"is_skipped": false
},
{
"column": "First Name",
"moe_attr": "u_fn",
"type": "string",
"is_skipped": false
},
{
"column": "First Seen",
"moe_attr": "cr_t",
"type": "datetime",
"datetime_format": "YYYY-MM-DD hh:mm:ss",
"is_skipped": false
},
{
"column": "LTV",
"moe_attr": "t_rev",
"type": "double",
"is_skipped": false
},
{
"column": "Install Status",
"moe_attr": "installed",
"type": "bool",
"is_skipped": false
}
]
}
{
"mapping": [
{
"column": "customer_id",
"moe_attr": "uid",
"type": "string",
"is_skipped": false
},
{
"column": "user.first_name",
"moe_attr": "u_fn",
"type": "string",
"is_skipped": false
},
{
"column": "user.first_seen",
"moe_attr": "cr_t",
"type": "datetime",
"datetime_format": "YYYY-MM-DD hh:mm:ss",
"is_skipped": false
},
{
"column": "attribution.lifetime_value",
"moe_attr": "t_rev",
"type": "double",
"is_skipped": false
},
{
"column": "attribution.device_installed",
"moe_attr": "installed",
"type": "bool",
"is_skipped": false
}
]
}
各列について、次のフィールドを記載する必要があります:
-
「カラム」
:
(必須)
ソースファイルからの列名を表します。JSONファイルのレベル2列をマッピングする際には、ドット表記を使用できます: key1.key2.
- “moe_attr” (required) マッピングしたいMoEngage属性(属性名)を指定してください。 データ管理 ページで、イベント数、ユーザー属性、ユーザーおよびイベントのボリュームを確認できます。各列がユニークな「moe_attr」にマッピングされていることを確認してください。
- 「タイプ」: (オプション) このフィールドは列のデータ型を表します。属性の受け入れ可能な「型」形式については、 以下の表 を参照してください。詳細については、 データ管理 ページを参照してください。
- “datetime_format” : (オプション) このフィールドは日付と時刻の形式を示します。これはDateTimeフィールドのみに必須です。サポートされている日付時刻形式の完全なリストについては、 以下の表 を参照してください。
- “is_skipped”: (optional) このフィールドは、MoEngageが列をインポートするかどうかを示します。これはブール型のフィールドで、trueとしてマークされた属性はインポート中にスキップされます。
上記のサンプルマニフェストファイルは、5つの標準属性で構成されています。以下のリストでさらに多くの標準属性を参照するか、データ管理ダッシュボードを参照して完全な標準属性リストを取得できます。
MoEngageの参考用の他の標準ユーザー属性:
キー | ダッシュボードの属性名 | データ型 | 説明 |
---|---|---|---|
名前 | 名前 | 文字列 | ユーザーのフルネーム。 |
first_name | ファーストネーム | 文字列 | ユーザーの名。 |
last_name | 姓 | 文字列 | ユーザーの姓。 |
Email (Standard) | 文字列 | ユーザーのメールアドレス。For example, john@example.com | |
年齢 | 年齢 | 数値 | ユーザーの年齢 |
性別 | 性別 | 文字列 | ユーザーの性別 |
モバイル | 携帯番号(標準) | 文字列 | ユーザーの携帯電話番号。For example, 918888444411 |
moe_geo_location | 場所 |
配列 [lat,lng] をダブルで、フォーマットは {"lat": 12.11, "lon": 123.122} のようにします。 |
サンプル値はユーザーの位置情報です。{"lat": 12.11, "lon": 123.122} |
ソース | 出版社名 | 文字列 | これはインストールの発行者名です。例えば、Google Ads |
収益 | LTV | 数値 | ユーザーのライフタイムバリュー。 |
moe_unsubscribe | 配信停止 | ブール |
メールの配信解除属性。
設定値が真のとき、ユーザーにメールは送信されません。 |
moe_hard_bounce | ハードバウンス | ブール |
Email Hard Bounce Attribute. 設定された値が真のとき、ユーザーにメールは送信されません。 |
moe_spam | スパム | ブール |
メールスパム属性。 設定値が真のとき、ユーザーにメールは送信されません。 |
サポートされているユーザー属性タイプ
タイプ |
説明 |
マニフェストの値 |
文字列 |
任意の文字列の値。
許容される値の例
:
|
|
ダブル |
任意の小数値。
許容される値の例:
|
|
ブール |
許可される値の例:
|
|
日付 時間 |
任意の日付時刻値。サポートされているフォーマットは、 次の表 に記載されています。
許容される値の例:
|
|
サポートされている日時形式
日付時刻形式 | 例 |
“datetime_format”: "YYYY-MM-DD"
|
|
“datetime_format”: "YYYY/MM/DD"
|
|
“datetime_format”: "DD/MM/YYYY"
|
|
“datetime_format”: "DD-MM-YYYY"
|
|
“datetime_format”: "DD-MM-YYYY hh:mm:ss"
|
|
“datetime_format”: "DD/MM/YYYY hh:mm:ss"
|
|
“datetime_format”: "YYYY-MM-DD hh:mm:ss"
|
|
“datetime_format”: "YYYY/MM/DD hh:mm:ss"
|
|
“datetime_format”: "DD-MM-YYYYThh:mm:ss.s"
|
|
“datetime_format”: "DD/MM/YYYYThh:mm:ss.s"
|
|
“datetime_format”: "DD-MM-YYYYThh:mm:ssTZD"
|
|
“datetime_format”: "DD/MM/YYYYThh:mm:ssTZD"
|
|
“datetime_format”: "YYYY-MM-DD hh:mm:ss.s"
|
|
“datetime_format”: "YYYY/MM/DD hh:mm:ss.s"
|
|
“datetime_format”: "YYYY-MM-DDThh:mm:ssTZD"
|
|
“datetime_format”: "YYYY/MM/DDThh:mm:ssTZD"
|
|
“datetime_format”: "YYYY-MM-DDThh:mm:ss.sTZD"
|
|
“datetime_format”: "YYYY/MM/DDThh:mm:ss.sTZD"
|
|
(スノーフレークインポート専用) |
|
ファイルの準備ができたら、それらをフォルダーの中に入れる必要があります。
フォルダー構造
すべてのファイルをフォルダーに配置してください。インポートの設定中にフォルダーのパスを構成できます。 MoEngage はルートフォルダーやサブフォルダー内のファイルを探しませんのでご注意ください。
インポートの設定
MoEngageダッシュボードの以下のナビゲーションでS3/SFTPインポートを設定できます: セグメント -> S3/SFTPインポート 。 ダッシュボードの以下のナビゲーションでユーザー特有のインポートを見つけることもできます: セグメント ユーザーをインポートします。
Amazon S3
S3インポートを正しく設定するには、MoEngageに関連する権限を付与し、すべてのファイルが私たちに適切にアクセス可能であることを確認する必要があります。 S3インポートの設定方法を学ぶ 。
SFTPサーバー
MoEngageがサポートする認証方法の種類と構成手順について学ぶには、 SFTPインポートの設定方法を確認してください 。
インポートダッシュボード
S3/SFTPインポートダッシュボードには、インポートを追跡するために必要なすべての情報が含まれています。重要な情報を一目で確認できます:
名前 |
説明 |
名前 |
設定中に指定したインポートの名前。 |
タイプ |
インポートのソース、MoEngageはS3、SFTP、CSV、Snowflakeをサポートしています
|
カスタムセグメント |
ユーザーインポートがカスタムセグメントで発生した場合、この列にセグメントの名前が表示されます。 |
作成日 |
インポートが作成された日時。 |
最終同期ステータス |
インポートの最終ステータス。 一度限りのインポート : インポートの現在のステータス。
定期的な インポート 最新のスケジュールされたインポートの現在のステータス。
|
ファイルが処理されました |
これまでに処理されたファイルの数。 |
行の処理 |
これまでに処理された行の総数。 |
アクション |
インポートの詳細を表示、編集、複製、または削除することができます。 |
各インポートの詳細は、対象の三点リーダーのアクションメニューをクリックし、 詳細を表示 を選択することで確認できます。
名前 |
説明 |
スケジュールされた日時 |
設定時に指定したインポートの名前。 |
ファイル名 |
インポートされたファイルの名前。 |
ステータス |
輸入の状況。
|
ファイルの行 |
ファイルに存在するデータ行の数。 |
イベントが追加されました |
ファイルからインポートされたイベントの数。 |
イベントが失敗しました |
インポートに失敗したイベントの数。 |
ユーザーが更新されました |
MoEngageでの更新の可能性がある既存ユーザーのインポートで特定されたレコードの数。 |
ユーザー作成済み |
MoEngageでの潜在的な作成のために提出された新しいユーザーのインポートで特定されたレコードの数。 |
ユーザーが失敗しました |
インポートからのユーザー記録のうち、エラー(例:無効な形式)により最初に処理できなかった数。 |
Auxデータが追加されました |
インポート中に追加された補助データ行の数。 |
Aux Data failed |
インポート中に失敗した補助データ行の数。 |
行がスキップされました |
インポート中にスキップされた行の数。 |
アクション |
インポートされたファイルのコピーをダウンロードするには、「エクスポートファイル」を選択できます。ファイルは最大60日間エクスポートできます。 |
MoEngageのユーザーに対する実際の作成数と更新数を確認するには、セグメンテーションクエリを利用してください。
インポートのトリガー
インポートをトリガーするには、次のオプションのいずれかを使用できます:
-
手動
: 定期インポートは、インポートページから
アクション
をクリックすることで手動でトリガーできます。
注意 : 予定された時間の5分以内にインポートをトリガーすると、エラーが発生する可能性があります。
- API : インポートは、ファイルインポートトリガーAPIを使用してトリガーできます。詳細については、 ファイルインポートトリガーAPI を参照してください。
ファイル制限
MoEngageがサポートする最大ファイルサイズは1ファイルあたり200MBです。より大きなファイルの場合は、ファイルをそれぞれ200MBのファイルに分割する必要があります。
-
行:
MoEngageはCSV/JSONファイルで最大1M行を許可します。
- 列/属性: MoEngageはユーザーごとに100の列(属性)と、イベントごとに100の列(属性)を許可します。
- ファイルサイズ: S3/SFTPの場合はファイルサイズは<200MB(CSVごと)、手動アップロードの場合は<150MB(CSVごと)であるべきです。
- ファイルごとの行数: 行数は100万を超えてはいけません。
- ファイル名のプレフィックス: ファイル名のプレフィックスの最大文字数は100文字である必要があります。これらの制限はS3およびSFTPインポートに適用されます。
- ファイルの数: 各インポートで、MoEngageは最大250ファイルをインポートできます。
- 輸入制限 : 下記の表を参照してください。
インポートタイプ |
ユーザー |
イベント |
デフォルトの時間給 |
600K/hr |
5M/hr |
デフォルトデイリー |
合計14M/日 |
合計 40M/日 |
右上隅のレート制限を参照して、ユーザー、イベント、および補助データの消費制限/デフォルト制限を日次および時間ごとに確認できます。以下の画像に示されています。
info |
注意
|
ベストプラクティス
データインポートがスムーズかつ効率的に実行されるように、以下の推奨事項を考慮してください:
- スピードのためのファイルサイズの最適化: より迅速な処理のために、個々のインポートファイルは100万行未満に抑えることをお勧めします。
- 大規模データセットの分割: インポートするデータが大量にある場合、それを複数の小さなファイルに分割することで、一般的に1つの大きなファイルをアップロードするよりも全体的な処理速度が速くなる可能性があります。
よくある質問
右側の省略記号をクリックし、 表示 をクリックしてインポートの詳細を確認してください。ステータス 失敗 にカーソルを合わせて、理由を確認してください。
デフォルトでは、失敗した場合にインポートは再試行されません。ただし、失敗時にメールアラートを受け取るように設定することができます。
そのような場合、新しいデータはアーカイブされたセグメントに追加されます。必要に応じてセグメントをアーカイブ解除できます。
指定されたワークスペースのスケジュールされた実行では、MoEngageはファイル名のプレフィックスに基づいてS3/SFTPフォルダ内で識別されたすべての新しいファイルを取得し、それらを処理します。指定されたMoEngageワークスペースへのデータインポートは、フォルダの場所とファイル名の組み合わせでこれらのファイルを一意に識別します。
いいえ。一度処理されたファイルは、ファイル名が同じで、同じフォルダの場所にある場合、再度処理されることはありません。ただし、同じファイルが別のフォルダーに配置されている場合、新しいフォルダーの場所が設定されたMoEngageでの新しいデータインポートのセットアップがファイルを取得できます。
No.あなたのMoEngageワークスペースダッシュボードでのデータインポートは、ユーザーデータとイベントデータのために別々に設定する必要があるため、ファイルにはユーザー属性データまたはイベントデータのいずれかを含める必要があります。
インポートプロセスが開始されると、その途中で停止することはできません。これは、データがいくつかのステップを経るためであり、それを中断すると不完全または不一致な結果につながる可能性があります。現在のインポートが終了するのを待つのが最善です。
はい、今後のスケジュールされたインポートが自動的に実行されるのを停止できます。これを行うには、インポートスケジュールを見つけ、データインポートダッシュボードのアクションメニューから「アーカイブ」オプションを選択します。これにより、次の予定された時間に実行されるのを防ぎます。
インポートが停止しているように見える場合や、通常よりも時間がかかっている場合は、待つのが最善です。システムには、これらの状況を自動的に処理し、必要に応じて再試行するためのチェックが組み込まれています。処理中の同じインポートを手動で再度開始すると、競合が発生し、元のインポートが正常に完了するのを妨げる可能性があります。
NDJSON(改行区切りJSON)とは、.jsonファイル内の各行が完全なJSONオブジェクトであり、改行で区切られていることを意味します。この形式は、大規模なJSONデータセットを行単位で効率的に処理し、スケーラブルで堅牢なインポートを可能にするために必要です。
.gz,.zip
)はサポートされていますか?
いいえ、MoEngageは圧縮ファイルのインポートをサポートしていません。
ファイルタイプを変更すると、MoEngageは既存のプレビューを削除し、新しいファイルタイプに基づいて利用可能なファイルのリストを再取得します。再度 プレビューするファイル を選択し、新しいファイルの構造に基づいてマッピングを設定する必要があります。