Amplify で AWS Pinpoint 分析を設定する方法を理解するのに助けが必要です。index.js
現在、Amplify for Auth を使用しており、ファイルで次のように構成しています。
export const configureAmplify = () => {
window.LOG_LEVEL="DEBUG"
Hub.listen('auth', data => handleAmplifyHubEvent(data))
Hub.listen('analytics', data => handleAmplifyHubEvent(data))
Amplify.configure({
Auth: {
identityPoolId: "redacted",
region: "us-west-2",
userPoolId: "redacted",
userPoolWebClientId: "redacted",
mandatorySignIn: false,
cookieStorage: {
domain: process.env.NODE_ENV === 'development' ? "localhost" : "redacted",
path: '/',
expires: 1,
secure: false
}
}
})
}
Analytics を追加するために、これをconfigureAmplify()
関数に追加することから始めました。
Analytics: {
disabled: false,
autoSessionRecord: true,
AWSPinpoint: {
appId: 'redacted',
region: 'us-east-1',
endpointId: `wgc-default`,
bufferSize: 1000,
flushInterval: 5000, // 5s
flushSize: 100,
resendLimit: 5
}
}
ユーザーのサインイン時または Cookie ストレージからの更新時に、私が呼び出した
Analytics.updateEndpoint({
address: user.attributes.email, // The unique identifier for the recipient. For example, an address could be a device token, email address, or mobile phone number.
attributes: {
},
channelType: 'EMAIL', // The channel type. Valid values: APNS, GCM
optOut: 'ALL',
userId: user.attributes.sub,
userAttributes: {
}
})
これを行った後、Pinpoint コンソールのデータが正確ではないように思えます。たとえば、エンドポイント フィルタが適用されていない場合、現在 44 個のセッションが表示されます。それまでにエンドポイント フィルターを追加するuserAttributes: userId
と、選択した ID に関係なく、そのユーザーに関連付けられている 44 のセッションすべてが表示されます。EndpointID
これは、起動時に が確立され、呼び出しによって変更されないためだと思われupdateEndpoint
ます。
Analytics
また、最初に Amplify を構成するときにキーを省略し、ユーザーがサインインした後に呼び出すことも試みAnalytics.configure()
ました。このアプローチにより、ユーザー固有のendpointId
. ただし、このようにすると、認証イベント (サインイン、サインアップ、認証失敗) が発生するまでは Analytics が構成されないため、これらのイベントをキャプチャしないことになると思います。
私の質問は、Amplify Analytics を構成する適切なタイミングはいつですか? セッション、認証、カスタム イベントを正確にキャプチャし、ユーザー ID で一意に識別するにはどうすればよいですか?