Skip to content

Analytics and Mobile Data Share

Cardlytics Modules have a built-in analytics event stream that is sent back to Cardlytics servers. This is built into both the mobile and web SDKs and is a proprietary service. The primary use-case for this event stream is to provide merchants with attribution signals to help measure the performance of their campaigns. In addition to the primary case, we have three secondary use-cases:

  1. Fraud detection and prevention.
  2. Debugging metadata for defect reproduction and testing.
  3. Analysis of how end customers are interacting with the SDK to inform and power future experiments.

 

Collected Data and Data Types

 

Customer/Device/Vendor/Advertising ID

These identifiers are used for:

  • customer matching for merchant targeting and suppression
  • fraud detection and prevention
  • frictionless attribution for offers
1
2
"vendor" : "00000000-0000-0000-0000-000000000000",
"marketplaceUserId" : "my-marketplace:00000000-0000-0000-0000-000000000000",

SDK and App Info

This information is used for:

  • identifying SDK and Application versions for debugging, analytics, and attribution.
1
2
3
  "appVersion" : "2.3.1",
  "sdkVersion": "1.0.0",
  "applicationId": "my-marketplace:00000000-0000-0000-0000-000000000000"

Device Info

The device information is used for:

  • Understanding device capabilities for testing focus.
  • Understanding device capabilities for debugging SDK behavior.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
  "brand" : "iPhone",
  "manufacturer" : "Apple",
  "model" : "9.1",
  "os" : "iOS",
  "osVersion" : "12.1.1",
  "screen": {
        "height" : 667,
        "width" : 375,
        "nativeScale" : 2.0
  },
  "languages" : [
      "en-US",
      "en-GB"
  ]
}

Time Zone

Cardlytics supports offers that may have a time of day and/or urgency component. For these offer types, time zone helps us understand our users' time zone distribution and ensure the proper visual representation of that content. Example:

1
{ "timeZone" : "America/Los_Angeles" }

Location and IP Address

Cardlytics uses location signals to provide relevant, nearby offer content to the consumer. It is also used for purposes of fraud detection and attribution.

1
2
3
4
5
6
{
  "location" : {
    "lat" : "31.000000",
    "lon" : "-97.000000"
  }
}

Info

Without a device based GPS signal, the Cardlytics platform will degrade to an IP address signal for geo-location, but that is a blunt instrument that provides a less than optimal user experience. IP address is also used by Cardlytics for fraud detection and prevention purposes. IP address is not collected by the SDK. Rather, our servers reference the IP address of the incoming request.

General Analytic Event Types

Cardlytics uses a series of analytic events to monitor the performance and use of the SDK. These events are key in allowing us to provide attribution signals to merchants.

Those events are broken down into the following types:


ERROR: helps us understand, catch, and correlate errors happening in the real world.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
"type":"ERROR",
"body": {
   "code": "graphql_502",
   "message": "Received an unexpected response status code from GraphQL.",
   "metadata": {
      "request": "query GetBrandDetails()",
      "url": "https:\/\/localhost\/graphql\/v1\/ugraphql"
   },
   "severity": "CRITICAL"
}


LIFECYCLE: helps us measure engagement within the SDK and provides attribution signals.

1
2
3
4
"type": "LIFECYCLE",
"body": {
   "state": "FOREGROUND"
}


SCREEN: helps us understand how the user is navigating through the experience. Helps provide attribution signals.

1
2
3
4
"type": "SCREEN",
"body": {
   "screen":"UnauthenticatedBrandDetailsScreen"
}


EVENT: helps us understand user behavior within the experience. Helps us maximize engagement and improve UX.

1
2
3
4
5
6
7
8
"type": "EVENT",
"body": {
   "name": "ContentFeedItemTapped",
   "metadata": {
      "brandId": "2135kh1235lkj23",
      "brandName": "Sephora"
   }
}


Each of these events carry meta-data with them specific to the experience like:

  • Experimentation variations
  • Experience elements (buttons, lists, etc.)
  • Experience interaction (taps, scrolls, hovers, etc.)
  • Notification content like titles and colors