Events

You are currently viewing the AWS SDK for Mobile documentation which is a collection of low-level libraries. Use the Amplify libraries for all new app development. Learn more

You can view the Mobile SDK API reference here.

You can use the Amazon Pinpoint SDK to report usage data, or events, to Pinpoint. You can report events to capture information such as session times, users' purchasing behavior, sign-in attempts, or any custom event type that you need.

After your application reports events, you can view analytics in the Pinpoint console. The charts on the Analytics page provide metrics for many aspects of user behavior. For more information, see Chart Reference for Amazon Pinpoint Analytics in the Amazon Pinpoint User Guide.

To analyze and store your event data outside of Pinpoint, you can configure Pinpoint to stream the data to Amazon Kinesis. For more information, see Streaming Amazon Pinpoint Events to Kinesis.

By using the AWS Mobile SDKs and the AWS Amplify JavaScript libraries, you can call the Pinpoint API to report the following types of events:

Session events

Indicate when and how often users open and close your app.

After your application reports session events, use the Analytics page in the Amazon Pinpoint console to view charts for Sessions, Daily active endpoints, 7-day retention rate, and more.

These are automatically recorded when you integrate your iOS app with the Pinpoint SDK as shown above.

Custom events

Are nonstandard events that you define by assigning a custom event type. You can add custom attributes and metrics to a custom event.

On the Analytics page in the console, the Events tab displays metrics for all custom events that are reported by your app. Use graphs of your custom usage event data in the Pinpoint console. Visualize how your users' behavior aligns with a model you design using Amazon Pinpoint Funnel Analytics, or use stream the data for deeper analysis.

Use the following steps to implement Pinpoint custom analytics for your app.

1// You can add this function in desired part of your app.
2// It will be used to log events to the backend.
3func logEvent() {
4 if let analyticsClient = pinpoint?.analyticsClient {
5 let event = analyticsClient.createEvent(withEventType: "EventName")
6 event.addAttribute("DemoAttributeValue1", forKey: "DemoAttribute1")
7 event.addAttribute("DemoAttributeValue2", forKey: "DemoAttribute2")
8 event.addMetric(NSNumber(value: arc4random() % 65535), forKey: "EventName")
9 analyticsClient.record(event)
10 analyticsClient.submitEvents()
11 }
12}

Build, run, and use your app. Then, view your custom events on the Events tab of the Pinpoint console (choose Analytics>Events). Look for the name of your event in the Events menu.

Monetization events

Report the revenue that's generated by your application and the number of items that are purchased by users.

On the Analytics page, the Revenue tab displays charts for Revenue, Paying users, Units sold, and more.

Use the following steps to implement Pinpoint monetization analytics for your app.

1func sendMonetizationEvent() {
2 if let analyticsClient = pinpoint?.analyticsClient {
3 let event = analyticsClient.createVirtualMonetizationEvent(
4 withProductId: "DEMO_PRODUCT_ID",
5 withItemPrice: 1.00,
6 withQuantity: 1,
7 withCurrency: "USD"
8 )
9 analyticsClient.record(event)
10 analyticsClient.submitEvents()
11 }
12}

Authentication events

Indicate how frequently users authenticate with your application.

On the Analytics page, the Users tab displays charts for Sign-ins, Sign-ups, and Authentication failures.

To learn how frequently users authenticate with your app, update your application code so that Pinpoint receives the following standard event types for authentication:

  • _userauth.sign_in
  • _userauth.sign_up
  • _userauth.auth_fail

You can report authentication events by doing either of the following:

  • Managing user sign-up and sign-in with Amazon Cognito user pools.

    Cognito user pools are user directories that make it easier to add sign-up and sign-in to your app. As users authenticate with your app, Cognito reports authentication events to Pinpoint. For more information, see Using Amazon Pinpoint Analytics with Amazon Cognito User Pools in the Amazon Cognito Developer Guide. Also update awsconfiguration.json by adding the PinpointAppId key under CognitoUserPool.

    1"CognitoUserPool": {
    2 "Default": {
    3 "PoolId": "<poolid>",
    4 "AppClientId": "<appclientid>",
    5 "Region": "<region>",
    6 "PinpointAppId": "<pinpointappid>"
    7 }
    8}
  • Reporting authentication events by using the Pinpoint client that's provided by the AWS Mobile SDK for iOS or Android.

    If you don't want to use Cognito user pools, you can use the Pinpoint client to record and submit authentication events, as shown in the following examples. In these examples, the event type is set to _userauth.sign_in, but you can substitute any authentication event type.

    1func sendUserSignInEvent() {
    2 if let analyticsClient = pinpoint?.analyticsClient {
    3 let event = analyticsClient.createEvent(withEventType: "_userauth.sign_in")
    4 analyticsClient.record(event)
    5 analyticsClient.submitEvents()
    6 }
    7}

Event Ingestion Limits

The limits applicable to the ingestion of events using the AWS iOS SDK for Pinpoint and the Pinpoint Events API can be found here.

Note: Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides.