Heap's power comes from automatically capturing all the user interactions that happen in your app. This data is sanitized and organized into the following hierarchy for you, where users have many sessions and sessions have many events:
Properties of each object are as follows. Note that exported data has a different format, as described here.
For web, a user maps directly to a unique client-side cookie. For iOS, a user maps to a shared
NSUserDefaults object. It contains the following properties:
- All User ID: randomly generated user ID.
- All Date First Seen: timestamp when the user was first seen by Heap.
- All Initial Platform, Initial Device Type, Initial Country, Initial Region, Initial City: the initial value of these fields (described above) are set on the user's first session.
- Web Initial Referrer, Initial Browser, Initial Landing Page, Initial Search Keyword: the initial value of these fields (described above) are set on the user's first session.
- Web Initial UTM Source, Initial UTM Medium, Initial UTM Term, Initial UTM Content, Initial UTM Campaign: the initial value of these fields (described above) are set on the user's first session.
- iOS Initial Device, Initial Carrier: the initial value of these fields (described above) are set on the user's first session.
For web, a session ends after 30 minutes of inactivity from the user. For iOS, a session ends after your app has entered the background. It contains the following properties:
- All Session ID: randomly generated ID number.
- All User ID: ID of associated user.
- All Time: timestamp when session began.
- All Platform: user's operating system.
- All Device Type: device type, which can be one of "Mobile", "Tablet", or "Desktop".
- All Country, Region, City: user's geolocation data.
- Web Referrer: webpage that linked to your site and initiated the session. If the user navigated directly to your site, or referral headers were stripped, then this value will appear as
- Web Landing Page: first page of the current session.
- Web Browser: user's browser.
- Web Search Keyword: search term that brought the user to your app.
- Web UTM Source, UTM Medium, UTM Term, UTM Content, UTM Campaign: GA-based URL tags associated with the session's initial pageview.
- iOS Device: user's device.
- iOS Carrier: user's cell phone carrier.
- iOS App Name: current name of iOS app, as determined by
- iOS App Version: current version of iOS app, as determined by
All the raw client-side actions users performed in your app. It contains the following properties:
- All Type: for web, can be any of
change, with push state events registered as
view pageevents. For iOS, can be
edit field, or a gesture recognizer you've defined.
- All Time: when the event happened.
- All User ID: ID of associated user.
- All Session ID: ID of associated session.
- Web Target Tag: tagname of the event target's DOM element, e.g.
- Web Target ID: id of the event target's DOM element, e.g.
- Web Target Class: classname of the event target's DOM element, e.g.
- Web Href:
hrefproperty of link. (for clicks on anchor tags)
- Web Domain: the current domain including subdomain, e.g.
- Web Hash: the part of the current URL following the hash sign, e.g.
- Web Path: the part of the current URL following your domain, e.g.
- Web Query: the query params of the page's current URL, e.g.
- Web Title: title of the current HTML page.
- iOS Action Method: name of the action method triggered by this event, e.g.
- iOS View Controller: name of the current view controller or screen.
- iOS View Controller accessibilityIdentifier: the accessibilityIdentifier for the current view controller.
- iOS View Controller accessibilityLabel: the accessibilityLabel for the current view controller.
- iOS Target View Class: the underlying class name of an iOS action's target, e.g.
- iOS Target View Name: the instance variable name of an iOS action's target, e.g.
- iOS Target accessibilityIdentifier: the accessibilityIdentifier of an iOS action's target.
- iOS Target accessibilityLabel: the accessibilityLabel of an iOS action's target.
- All Target Text: the button text of the event target.
Hiding Elements from Heap
If there's a sensitive element you don't want auto-tracked, you can hide it from Heap by just adding the attribute
heap-ignore. All descendent elements will also be ignored by Heap.
No events triggered on the element
<input type='text' heap-ignore='true'>, for instance, will be captured by Heap.
Additionally for iOS, you can use defined runtime attributes to set
heapIgnore to a
boolean and make sure it's enabled.