Я пытаюсь получить базовую аналитику для пула пользователей Cognito. Это казалось достаточно простым: я создал проект в Pinpoint, затем зашел в свой пул пользователей, зашел в Общие настройки ›Аналитика, нажал кнопку« Добавить аналитику », выбрал клиент приложения Amazon Cognito, который использует мое приложение, указал на Pinpoint проект, который я только что создал, поставил галочку напротив параметра Поделиться данными профиля пользователя (хотя я предполагаю, что это не является абсолютно необходимым), и в нем было сообщение о том, буду ли я использовать роль IAM и так далее. Нажал «Сохранить», ошибок не было, я предполагал, что на этом этапе я начну видеть аналитику в Pinpoint, но ничего не отображается. У меня есть сообщение о том, что я еще не включил какие-либо функции, но я не вижу никаких функций Мне нужно включить. На данный момент меня не волнуют кампании, а затем в разделе «Аналитика приложений» кажется, что вы вручную обновляете свое мобильное или веб-приложение, чтобы что-то отправить, но я подумал, что это было, если вам нужно что-то настроить. Я ошибаюсь? Будет ли эта интеграция работать только в том случае, если вы измените свое веб-приложение на явную отправку данных в Pinpoint? Я просто предположил, что если я подключу Cognito и Pinpoint, аналитика покажет, поскольку Cognito, очевидно, знает, что люди входят в систему, и вам не нужно вручную делать дополнительный запрос.
Как подключить Cognito к Pinpoint для аналитики?
Ответы (2)
Из своего исследования я выяснил, что, поскольку вы используете веб-приложение без использования фреймворка AWS Amplify, вам необходимо добавить в приложение дополнительные строки кода, чтобы отправлять данные аналитики аутентификации Cognito в ваш проект Amazon Pinpoint.
Если вы используете Javascript SDK, вы можете добавить initate -Auth свойство фрагмент кода для интерфейсного приложения:
var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); var params = { AuthFlow: "USER_PASSWORD_AUTH", ClientId: 'STRING_VALUE', /* the client ID attached to the Pinpoint project */ AuthParameters: { 'USERNAME': 'STRING_VALUE', 'PASSWORD': 'STRING_VALUE' }, AnalyticsMetadata: { AnalyticsEndpointId: 'STRING_VALUE' /* the Pinpoint project ID */ }, }; cognitoidentityserviceprovider.initiateAuth(params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else console.log(data); // successful response });
- В приведенном выше фрагменте кода идентификатор проекта / приложения Pinpoint добавляется как часть параметра AnalyticsMetadata, когда клиент выполняет вызовы API (например, вход, регистрация и т. Д.) В Cognito. пул пользователей. Следовательно, к вызовам API будет прикреплен идентификатор проекта pinpoint, и Cognito может использовать эту информацию для отправки данных в ваш проект Pinpoint. Без этого важного шага аналитические данные не будут отправлены в Pinpoint и приведут к описанному вами поведению.
При использовании интерфейса командной строки (для проверки / тестирования) вы можете выполнить следующий интерфейс командной строки AWS initiate-auth, приведенная ниже команда:
$ aws cognito-idp initiate-auth --auth-flow USER_PASSWORD_AUTH --auth-parameters USERNAME=STRING_VALUE,PASSWORD=STRING_VALUE --client-id STRING_VALUE --analytics-metadata AnalyticsEndpointId=STRING_VALUE
Суть в том, что:
Интеграция Amazon Cognito с Amazon Pinpoint работает только для приложений. (клиенты), использующие Cognito SDK для мобильных приложений (мобильные SDK AWS или JavaScript - библиотека AWS Amplify JavaScript).
Просто примечание к ответу syumaK, да, вам нужно обновить вызов initAuth вашего кода, чтобы включить свойство AnalyticsMetadat. Однако я обнаружил, что AnalyticsEndpointId НЕ должен быть идентификатором проекта Pinpoint.
Я считаю, что, поскольку вы уже настроили Cognito для интеграции с точным проектом, он знает, в какой точечный проект вы уже отправляете метрики. AnalyticsEndpointId должен быть уникальным идентификатором для входа в систему.
Документация здесь определенно ненадежная. Cli one от syumaK, кажется, описывает это иначе, чем Справочник по Cognito API
Со мной случилось то, что я использовал точный идентификатор проекта, и когда я вхожу в систему с несколькими пользователями, он думает, что это один и тот же. Ежедневно активные пользователи остаются на одном уровне. AWS Support пояснила, что это должен быть уникальный идентификатор для каждого пользователя. Поэтому после изменения идентификатора на адрес электронной почты пользователя я начинаю получать точные цифры для ежедневных активных пользователей.
Также кажется, что это примерно так же полезно, как если бы вы не использовали Cognito SDK для мобильных приложений или Amplify. Вы можете получить только такую информацию, как количество активных пользователей за день / месяц, показатели аутентификации. У вас нет возможности дальнейшей разбивки по сегментам и т. Д.