0

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 で一意に識別するにはどうすればよいですか?

4

1 に答える 1