# AnalyticsConfiguration

The settings for Amazon Pinpoint analytics configuration.

With an analytics configuration, your application can collect user-activity metrics for user notifications with an Amazon Pinpoint campaign.
Amazon Pinpoint isn't available in all AWS Regions.
For a list of available Regions, see Amazon Cognito and Amazon Pinpoint Region availability: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-pinpoint-integration.html#cognito-user-pools-find-region-mappings.

- Source: [`aws-cognito/lib/user-pool-client.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-cognito/lib/user-pool-client.ts#L387)
- Type last changed: v2.224.0 · 13 Nov 2025

## Example

```ts
import * as pinpoint from 'aws-cdk-lib/aws-pinpoint';

declare const userPool: cognito.UserPool;
declare const pinpointApp: pinpoint.CfnApp;
declare const pinpointRole: iam.Role;

new cognito.UserPoolClient(this, 'Client', {
  userPool,
  analytics: {
    // Your Pinpoint project
    application: pinpointApp,

    // Whether to include user data in analytics events
    shareUserData: true,
  },
});
```

## Properties

- `application`: [CfnApp](/cdk/api/v2/docs/aws-cdk-lib.aws_pinpoint.CfnApp.html) = no configuration, you need to specify either `application` or all of `applicationId`, `externalId`, and `role`. — The Amazon Pinpoint project that you want to connect to your user pool app client.

  Amazon Cognito publishes events to the Amazon Pinpoint project.
  You can also configure your application to pass an endpoint ID in the `AnalyticsMetadata` parameter of sign-in operations.
  The endpoint ID is information about the destination for push notifications.

  **Default:** no configuration, you need to specify either `application` or all of `applicationId`, `externalId`, and `role`.

- `applicationId`: string = no configuration, you need to specify either this property along with `externalId` and `role` or `application`. — Your Amazon Pinpoint project ID.

  **Default:** no configuration, you need to specify either this property along with `externalId` and `role` or `application`.

- `externalId`: string = no configuration, you need to specify either this property along with `applicationId` and `role` or `application`. — The external ID of the role that Amazon Cognito assumes to send analytics data to Amazon Pinpoint.

  More info here: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html

  **Default:** no configuration, you need to specify either this property along with `applicationId` and `role` or `application`.

- `role`: [IRoleRef](/cdk/api/v2/docs/aws-cdk-lib.interfaces.aws_iam.IRoleRef.html) = no configuration, you need to specify either this property along with `applicationId` and `externalId` or `application`. — The IAM role that has the permissions required for Amazon Cognito to publish events to Amazon Pinpoint analytics.

  **Default:** no configuration, you need to specify either this property along with `applicationId` and `externalId` or `application`.

- `shareUserData`: boolean = false — If `true`, Amazon Cognito includes user data in the events that it publishes to Amazon Pinpoint analytics.
