Last updated Mar 31, 2022

Marketplace integration with Segment

Marketplace Partners can now capture user journeys, installs, and app requests for Marketplace apps using Segment.

Benefits

  1. Marketplace and its partners operating separate infrastructures for tracking anonymous traffic causes issues for capturing full funnel reporting for user journeys.

  2. With this new capability, tying journeys will no longer be an issue, and we can optimise our efforts and increase our (collective) revenue(s).

Requirements

  1. In order to subscribe to these events for an app, the write key for a segment source would have to be provided in the Manage App details section, similar to Google Analytics ID. Segment field in manage app details page

  2. Add the anonymous id of the users as a query parameter whenever redirecting the customers to MPAC app listing pages from the partner's website or ads. It is only then we can tie the anonymous_id of the customer on both sides. The query parameter name would have to be partner_anonymous_id. If this is not added, the events would still be published to segment but without the field partnerAnonymousId tied to the event payload

FORMAT:

https://<path-to-app-listing-page>?<query-params>&partner_anonymous_id=<id>

Example:

https://marketplace.atlassian.com/apps/1219592/github-for-jira?hosting=cloud&tab=overview&partner_anonymous_id=asdasd-asdsad-asdasd

Usage

Events are published to partner segment instances as an hourly job against 3 categories.

  1. MPAC User event → user events on app listing page including: tab clicks, CTA button click and page view events.

    Sample payload:

    1
    2
     {
     "context": {
         "library": {
         "name": "analytics-java",
         "version": "3.1.3"
         }
     },
     "event": "MPAC User event",
     "integrations": {},
     "messageId": "99e491a1-d2c7-4b68-ab97-cc7c3497e011",
     "originalTimestamp": "2022-03-29T09:39:55.093Z",
     "properties": {
         "action": "clicked",
         "actionSubjectId": "https://rieckermann.atlassian.net/",
         "anonymousId": "89b60ff131fa6d32b85f0893a8670fbc2a9608d0",
         "eventTime": "2022-03-29T09:11:31.147Z",
         "eventType": "Track",
         "label": "Start Free Trial",
         "partnerId": "1211971",
         "pluginId": "1219125",
         "partnerAnonymousId": "87s12b3431fa6d32b85f0893a8670f8a88s2235dd0"
         "pluginKey": "com.infosysta.jira.mobile-for-jira-service-desk-portal",
         "queryParamsJson": {
         "hosting": "cloud",
         "tab": "overview"
         },
         "referrerUrl": "https://www.google.com/",
         "url": "https://marketplace.atlassian.com/apps/1219125/jsmobile-service-management-portal?hosting=cloud&tab=overview",
         "userId": "0efffdf9a0db5f80d0927f9c0d269e8089c72df8"
     },
     "receivedAt": "2022-03-29T09:39:58.641Z",
     "sentAt": "2022-03-29T09:39:57.093Z",
     "timestamp": "2022-03-29T09:39:56.641Z",
     "type": "track",
     "userId": "89b60ff131fa6d32b85f0893a8670fbc2a9608d0",
     "writeKey": "5MveUGRM2pTALAYGCNygBu8Klw9UFRBP"
     }
    
  2. MPAC Install event → event corresponding to a cloud app install.

    Sample payload:

    1
    2
     {
     "context": {
         "library": {
         "name": "analytics-java",
         "version": "3.1.3"
         }
     },
     "event": "MPAC Install event",
     "integrations": {},
     "messageId": "32e377f9-d6c0-44d2-a986-7b2c12498558",
     "originalTimestamp": "2022-03-29T09:35:10.582Z",
     "properties": {
         "anonymousId": "cf9692e7-83b4-4f41-967c-a5b3fa988c27",
         "eventType": "Track",
         "partnerId": "1213750",
         "pluginId": "1216784",
         "pluginKey": "dropbox-jira"
     },
     "receivedAt": "2022-03-29T09:35:15.377Z",
     "sentAt": "2022-03-29T09:35:12.581Z",
     "timestamp": "2022-03-29T09:35:13.378Z",
     "type": "track",
     "userId": "cf9692e7-83b4-4f41-967c-a5b3fa988c27",
     "writeKey": "5MveUGRM2pTALAYGCNygBu8Klw9UFRBP"
     }
    
  3. MPAC App request event → event corresponding to a cloud app request.

    Sample payload:

    1
    2
     {
     "context": {
         "library": {
         "name": "analytics-java",
         "version": "3.1.3"
         }
     },
     "event": "MPAC App request event",
     "integrations": {},
     "messageId": "903b89f3-f5de-48bf-8c08-db02b035f2db",
     "originalTimestamp": "2022-03-29T09:35:52.997Z",
     "properties": {
         "anonymousId": "c2b5e0e5-c919-4330-9cb6-c1db82cf87e1",
         "eventType": "Track",
         "partnerId": "350257",
         "pluginId": "350288",
         "pluginKey": "com.lucidchart.confluence.plugins.lucid-confluence"
     },
     "receivedAt": "2022-03-29T09:35:56.509Z",
     "sentAt": "2022-03-29T09:35:54.997Z",
     "timestamp": "2022-03-29T09:35:54.509Z",
     "type": "track",
     "userId": "c2b5e0e5-c919-4330-9cb6-c1db82cf87e1",
     "writeKey": "5MveUGRM2pTALAYGCNygBu8Klw9UFRBP"
     }
    

Things to note here are:

  1. MPAC Install event and MPAC App request event, correspond to the actual install and request of the app and not CTA button click on app listing page

  2. The field - userId in payload is a hashed representation of Atlassian account id for the user which will be constant. This is always present for MPAC Install event and MPAC App request event and not present in MPAC User event for events from non-logged in users

  3. partnerAnonymousId will be absent in the payload of MPAC User event, if the query parameter partner_anonymous_id is not added while redirecting users. Details about this is captured in above requirements

Rate this page: