📘

This integration is currently in beta. Contact your MetaRouter support team to get started.

What Is Heap?

Heap is a digital insights platform that captures and organizes user interactions across websites and mobile apps. It provides automatic event tracking, eliminating the need for manual tagging, and offers detailed analytics and reporting. Heap's interface allows users to explore data through easy-to-use visualizations and drill-down capabilities, enabling quick discovery of insights. The platform supports retroactive analysis, allowing users to query historical data without pre-defined events, which is particularly useful for identifying trends and user behaviors over time.

What are the benefits of integrating MetaRouter with Heap?

  • Efficient Data Delivery: MetaRouter ensures all relevant events and parameters are delivered to Heap via a server-side connection, improving data accuracy and reliability.
  • Simplified Implementation: By removing the need for a Heap tag on the site, the integration streamlines the implementation process, reducing setup time and maintenance efforts.
  • Enhanced Performance: Server-side data delivery minimizes the impact on website performance, leading to faster load times and a better user experience.

Capabilities and Considerations

  • User Identification and Profiles: By using the identify endpoint, MetaRouter sends the anonymousId as the identity parameter, allowing Heap to track user attributes and create detailed user profiles. This enables personalized experiences and targeted analysis.
  • Event Tracking and Analysis: The track endpoint captures a wide range of user interactions (e.g., page views, product views, cart additions), providing insights into user behavior and engagement.
  • Conversion Tracking: You can track key conversion events such as cart views, checkout starts, and order completions, enabling detailed funnel analysis and optimization of the customer journey in Heap.
  • Product and Promotion Analysis: Track interactions with products and promotions (e.g., product clicks, promotion clicks) to understand user preferences and the effectiveness of marketing campaigns in Heap.
  • Custom Event Tracking: You can define and track custom events specific to your business needs, allowing for a tailored approach to data collection and analysis in Heap.

Limitations

  • Session Replay: Heap's session replay feature, which visually reconstructs user interactions on the site, relies heavily on client-side data. This feature is not available with server-side tracking.

Getting Started - From Your Heap Account

  • Grab your App ID - Please use the following instructions to find your Heap ID: App ID
  • Grab your User ID - The user ID comes from the Heap SDK. Please contact your Heap support team to grab this value.

Getting Started - From Your MetaRouter Account

Adding a Heap integration.

From the integration library, add a Heap integration. Then, fill out the Connection Parameters:

Connection ParameterDescription
MY_APP_IDHeap app ID.
MY_USER_IDThe user ID that comes from the Heap SDK.

Event Mappings

MetaRouter provides all of the event mappings that Heap integrations typically require. You may add custom events, parameters or mappings in accordance with Heap’s API documentation.

Global

Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.

Output KeyDescriptionExpected Input
app_id
Required
String: The environment ID corresponding to one of your environments.Enrichment - staticString: MY_APP_ID

Event

Cart Viewed

Output KeyDescriptionExpected Input
events
Required
Array of Event Objects: A list of event objects containing user interaction details.N/A - Expression (see rows below)
Expression - identityString: Unique identifier for the user.input.anonymousId
Expression - timestamp
Required
String: The time at which the event occurred.input.timestamp
Expression - event
Required
String: The name of the event, cart_viewed.input.event
Expression - properties
Required
Object: Details about the cart and products viewed, including cart_id, category, product_id, etc.input.properties

Checkout Started

Output KeyDescriptionExpected Input
events
Required
Array of Event Objects: A list of event objects containing user interaction details.N/A - Expression (see rows below)
Expression - identityString: Unique identifier for the user.input.anonymousId
Expression - timestamp
Required
String: The time at which the event occurred.input.timestamp
Expression - event
Required
String: The name of the event, checkout_started.input.event
Expression - properties
Required
Object: Details about the checkout process, including product_id, category, price, etc.input.properties

Order Completed

Output KeyDescriptionExpected Input
events
Required
Array of Event Objects: A list of event objects containing user interaction details.N/A - Expression (see rows below)
Expression - identityString: Unique identifier for the user.input.anonymousId
Expression - timestamp
Required
String: The time at which the event occurred.input.timestamp
Expression - event
Required
String: The name of the event, order_completed.input.event
Expression - properties
Required
Object: Details about the order, including order_id, product_id, category, price, etc.input.properties

Page

Output KeyDescriptionExpected Input
events
Required
Array of Event Objects: A list of event objects containing user interaction details.N/A - Expression (see rows below)
Expression - identityString: Unique identifier for the user.input.anonymousId
Expression - timestamp
Required
String: The time at which the event occurred.input.timestamp
Expression - event
Required
String: The name of the event, Pageview.input.event
Expression - properties
Required
Object: Details about the page viewed, including path, referrer, url, etc.input.properties

Payment Info Entered

Output KeyDescriptionExpected Input
events
Required
Array of Event Objects: A list of event objects containing user interaction details.N/A - Expression (see rows below)
Expression - identityString: Unique identifier for the user.input.anonymousId
Expression - timestamp
Required
String: The time at which the event occurred.input.timestamp
Expression - event
Required
String: The name of the event, payment_info_entered.input.event
Expression - properties
Required
Object: Details about the payment info entered, including checkout_id, order_id, etc.input.properties

Product Added

Output KeyDescriptionExpected Input
events
Required
Array of Event Objects: A list of event objects containing user interaction details.N/A - Expression (see rows below)
Expression - identityString: Unique identifier for the user.input.anonymousId
Expression - timestamp
Required
String: The time at which the event occurred.input.timestamp
Expression - event
Required
String: The name of the event, product_added.input.event
Expression - properties
Required
Object: Details about the product added, including product_id, category, price, etc.input.properties

Product Clicked

Output KeyDescriptionExpected Input
events
Required
Array of Event Objects: A list of event objects containing user interaction details.N/A - Expression (see rows below)
Expression - identityString: Unique identifier for the user.input.anonymousId
Expression - timestamp
Required
String: The time at which the event occurred.input.timestamp
Expression - event
Required
String: The name of the event, product_clicked.input.event
Expression - properties
Required
Object: Details about the product clicked, including product_id, category, price, etc.input.properties

Product List Viewed

Output KeyDescriptionExpected Input
events
Required
Array of Event Objects: A list of event objects containing user interaction details.N/A - Expression (see rows below)
Expression - identityString: Unique identifier for the user.input.anonymousId
Expression - timestamp
Required
String: The time at which the event occurred.input.timestamp
Expression - event
Required
String: The name of the event, product_list_viewed.input.event
Expression - properties
Required
Object: Details about the product list viewed, including list_id, product_id, category, etc.input.properties

Product Viewed

Output KeyDescriptionExpected Input
events
Required
Array of Event Objects: A list of event objects containing user interaction details.N/A - Expression (see rows below)
Expression - identityString: Unique identifier for the user.input.anonymousId
Expression - timestamp
Required
String: The time at which the event occurred.input.timestamp
Expression - event
Required
String: The name of the event, product_viewed.input.event
Expression - properties
Required
Object: Details about the product viewed, including product_id, category, price, etc.input.properties

Products Searched

Output KeyDescriptionExpected Input
events
Required
Array of Event Objects: A list of event objects containing user interaction details.N/A - Expression (see rows below)
Expression - identityString: Unique identifier for the user.input.anonymousId
Expression - timestamp
Required
String: The time at which the event occurred.input.timestamp
Expression - event
Required
String: The name of the event, products_searched.input.event
Expression - properties
Required
Object: Details about the search performed, including the query string.input.properties

Required Identifiers

These identifiers must be mapped to Heap in order for successful user matching to occur. Without these IDs, any events sent to Heap may not be accurately reflected in reporting. For your convenience, required and recommended IDs are mapped as Global parameters to ensure they are added to every event.

AttributeExampleSync Injector Required?
identity (anonymous ID)130161d0-8fee-4167-aa4d-d151eed27c6bNo
user agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.110 Safari/537.36No

Additional Identifiers

These identifiers should be mapped to Heap whenever possible to ensure the highest user match rates possible. If using these identifiers, they must be added as Global or Event Specific mappings.

AttributeDescriptionExample
session idAn identifier corresponding to a user's sessionf47ac10b-58cc-4372-a567-0e02b2c3d479

Additional Heap Documentation

Heap Identify API Documentation

Heap Track API Documentation