For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.
Amazon Kinesis(コホート)
AmplitudeデータのAWS Kinesisコホート連携は、コホートメンバーシップの更新を直接Kinesisストリームにストリーミングします。
考慮事項
- この連携は、Amplitudeの有料プランをご利用のお客様のみがご利用いただけます。
- この連携を使用したいAmplitudeプロジェクトごとに有効にする必要があります。
- この連携を設定する前に、Amplitudeのアクティベーションと行動コホートについて理解しておく必要があります。
- Amplitudeはすべてのコホート更新ケーデンス(毎日、毎時、リアルタイム)をサポートしています。
- 既存のリアルタイムコホート同期の制限値はすべて適用されます。
前提条件
開始する前に、AWSアカウントにKinesisトピックを作成し、Amplitudeがコホートの更新をストリームに公開するために使用するIAMロールを作成してください。
連携を設定する
Kinesis の設定
1. Kinesis ストリームの作成
AWS コンソールで Kinesis ストリームを作成します。
2. IAM ロールを作成する
AmplitudeがAWS Kinesisストリームに直接書き込むための権限を付与するIAMロールを作成します。
- アカウントIDには、358203115967と指定します。これはイベントをエクスポートするために使用される Amplitude の AWS アカウントです。
- ポリシーを割り当てずにロールを最終化します。
- 新しいロールの信頼関係は次のようになります。
json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::358203115967:root"
},
"Action": "sts:AssumeRole"
}
]
}
3. IAMポリシーの作成
IAM ポリシーを作成して、Amplitude に Kinesis ストリームへの書き込み権限を付与します。
JSONからポリシーを作成オプションを選択し、「ポリシードキュメント」フィールドで次のテンプレートポリシーを使用します。
{account-id}をお使いのアカウントIDに変更し、{region}および{stream-name}を該当する値に置き換えます。また、{role-name}は作成したロールに置き換えます。json{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecord", "kinesis:PutRecords", "iam:SimulatePrincipalPolicy" ], "Resource": [ "arn:aws:kinesis:{region}:{account-id}:stream/{stream-name}", "arn:aws:iam::{account-id}:role/{role-name}" ] } ] }新しいポリシーをロールに割り当てます。
- ロールを開きます。
- ポリシーを添付オプションを選択し、新しいポリシーを選択します。
ロールARN、ストリームリージョン、およびストリーム名を記録しておいてください。これらは Amplitude で送信先を設定するために必要です。
Amplitude設定
- Amplitudeデータで、**[カタログ]をクリックし、[宛先]**タブを選択します。
- [コホート] セクションで、[Kinesis Data Stream] をクリックします。
- [別の送信先を追加] をクリックします。
- この送信先の表示名を入力します。この名前は、コホートを同期する際の送信先を識別します。
- 作成したストリーム名、AWSリージョン、ロールARNを入力します。
- 送信先を保存します。
コホートの送信
- Amplitudeで、エクスポートしたいコホートを開きます。
- 同期をクリックし、Kinesisデータストリームを選択します。
- 作成した送信先を選択します。
- 必要な同期頻度を選択します。
ペイロード
Kinesisに送信されるペイロードはJSONオブジェクトです。例:
json
{
"cohort_name": "Test Cohort",
"cohort_id": "gs72ns",
"in_cohort": true,
"computed_time": "1685748245",
"message_id": "some-message-id:54",
"users": [{
"user_id": "user1@amplitude.com",
"user_properties": {
"city": "San Francisco",
"fav_animal": "Bat"
}
},
{
"user_id": "user2@amplitude.com",
"user_properties": {
"city": "Seattle",
"fav_animal": "Cat"
}
}]
}
| フィールド | タイプ | 概要 |
|---|---|---|
cohort_name | 文字列 | オーディエンスの名前です。 |
cohort_id | 文字列 | オーディエンスの一意のID。これは、Amplitudeで表示した場合のURLにも含まれています。 |
in_cohort | ブール値 | このユーザーバッチがオーディエンスに入場しているか退場しているかを示します。 各メッセージはどちらかの状態しか持たず、両方ではありません。 |
compute_time | 文字列 | Amplitudeがオーディエンスを再計算した時のエポックタイムスタンプ。 Kinesisストリーミングでは受信時の順序を保証できないため、この値を使用して順序を再開してください。Amplitude では数値ではなく文字列として保持されます。これは、一部の言語やプラットフォームが JSON 数値を浮動小数点数と解釈して精度を失うためです。 |
message_id | 文字列 | 各メッセージの一意の ID。 |
users | List | ユーザーバッチです。各ユーザーは、user_id(文字列、ユーザーの ID)とオプションで user_properties(マップ、キーをプロパティ名とし、値をプロパティ値として使用) を含む JSON オブジェクトとして表現されます。 |
これは役に立ちましたか?