Who can use this feature?
- Available with Enterprise and Advanced plans.
- Requires an admin or architect role to configure.
Using Data Export to power workflows, send data to third-party systems, or batch sync with your data warehouse? Check out Fullstory's new product, Data Direct, for an always-on alternative.
What information is available with Data Export?
See below for a full list of Data Export contents.
How do I use the information from Data Export?
The possibilities are endless! This data set can be used on its own or to supplement existing models that aim to analyze user behavior. You can simply use the data for providing your marketing team with a point and click analysis tool or you can plug it into your fraud detection (e.g.) algorithm to add extremely powerful data to your model. The point is, you know best how the data is most relevant to your business needs.
When is data available in Data Export?
Data Exports are generated “on-demand,” meaning the data in the JSON files are fetched directly from our servers at the time that the export is requested.
Most events will be available in Data Export about 30 minutes from the time that the event occurred. However, some of the data may not be "settled" at the time of the export. Fullstory applies logic to events in order to make the data more useful, so recently ingested events may be updated as more information streams in. Examples include linking events to an individual via FS.identify, calculating metrics like active session time or receiving swan song bundles. Since some sessions can last hours, the exported data may change depending when you run the export.
Fullstory recommends waiting 24 hours before exporting data if you are looking for finalized values that remain static across multiple export runs. It is possible to export data closer to real time. If you choose to go this route, we recommend that your pipeline accounts for a rolling export window with overlapping time periods, deduplication and updating records with fresher values.
Data Export files will be available to download for 7 days from when the export was completed. The file expiration time can also be found in the API.
How does user deletion interact with Data Export?
All Data Exports are generated “on-demand.” This means if you delete 'Joe Smith' today and export data files tomorrow, Joe Smith’s data will not be in those data files, as Fullstory no longer has the user’s data to include in the file.
If you are fetching data export files daily, the data that you pull down and store on your servers may include personal data. This means when a user requests deletion, you may also need to delete their data from the data warehouse where you are storing Fullstory’s data exports.
How far back in time can I export data?
Data export availability matches the Product analytics retention length that you currently subscribe to. This means that if your account is configured for 12 months of Product analytics retention, you will be able to export data that is up to 12 months old. It is important to note that once data expires and is deleted, it is truly not recoverable.
How long should I wait to export data?
A delay is necessary when exporting data because there is some latency between when an event is recorded and when it is available and complete. 24 hours is the default, but is also fairly conservative. In many cases this can be reduced safely to 3 hours, but note that events from "swan songs" may not be available.
Data Export Contents
User/Session Fields
Name | Export Field Name |
Description |
---|---|---|
Individual Id | IndvId |
A unique identifier for the Individual that combines all Users with the same User App Key. For example, if you’ve identified user 123 whenever they visit your site, their Individual will include all of their Sessions across devices, browsers, etc.
Example: https://app.fullstory.com/ui/<ORG_ID>/session/<INDVID>:<SESSIONID>
|
User Id | UserId | A unique identifier for a user cookie on a given device/browser. This ID may be reset if the User clears their cookies, switches devices, changes browsers, etc. This field is not visible within the Fullstory UI—see UserAppKey below for more information. |
Session Id | SessionId | The identifier for a particular session, within the context of a single user. Use SessionId and UserId together as a compound key to uniquely identify sessions across all export data. |
Page Id | PageId | The identifier for a particular page load/refresh, within the context of a single session. Use PageId, SessionId, and UserId together as a compound key to uniquely identify pages across all export data. |
User App Key | UserAppKey | The user identifier that was passed to Fullstory from your system using FS.identify. This field is visible in the Fullstory UI as "User ID" when looking at a user's profile. |
User Display Name | UserDisplayName | The display name that was set via FS.identify or FS.setUserVars. |
User Email Address | UserEmail | The email address that was set via FS.identify or FS.setUserVars. |
IP Address | PageIp | The IP address corresponding to a session. IP addresses are used by Fullstory to infer a user's general location. IP address recording can be disabled if desired. More information on disabling IP address capture here. |
Custom User Variables | UserVars | If you're passing any user variables into Fullstory, we'll include them in the export. Note that, if loading export bundles into Redshift or BigQuery with hauser, the custom variable fields are amalgamated into a single JSON document under a field named “CustomVars” prior to import into the export staging table. |
Timestamp for Created User | UserCreated | UTC RFC 3339 timestamp for when the cookie associated with UserId was first seen. |
Timestamp for Session | SessionStart | The absolute time when the session was started, in UTC, represented as a dateTime from the XML Schema Specification, e.g. 2018-01-04T20:07:11.191Z. |
Page Fields
A “page” tracks each instance when a user loaded a page with a particular URL. The "PageId" is an Id that indicates the page was loaded or refreshed from the web server. A series of events for a single session can have one PageId and multiple PageURLs if it is a Single Page App that loads from the server once (one PageId) and then changes URLs without loading from the server again (a common pattern).
Name | Export Field Name | Description |
---|---|---|
Page Name | PageName | The name of the page, as set by FS.setVars() or FS('setProperties'). |
Timestamp for Page Start | PageStart |
The absolute time when the page was, in UTC, represented as a dateTime from the XML Schema Specification, e.g. 2018-01-04T20:07:11.191Z.
Note: All of the Page- fields correspond to a unique "instance" of a page. A single page instance is represented by a unique combination of UserId, SessionId, and PageId. |
Page URL | PageUrl | The full URL of the page on which the given event occurred. |
Custom Page Variables | PageVars | If you're passing any page variables into Fullstory, we'll include them in the export. |
Page Duration | PageDuration | The total time this User spent on this page during this session (milliseconds). This is not a running total; every event for a given page will show the same total duration. |
Active Page Duration | PageActiveDuration | The active time (mouse movement, text entry, clicks, etc.) this User spent on this page during this session (milliseconds). This is not a running total; every event for a given page will show the same total duration. |
Page Referrer URL | PageRefererUrl | The page from which the user reached this page. The referrer may be empty if the user manually entered the page URL, or if the referrer has been scrubbed, etc. |
Number of Events on a Page | PageNumEvents |
The total number of events that occurred on the page.
Note: When the PagePlatform is Web, the PageNum- fields indicate the number of events that occurred between when the HTML page was first rendered until the user navigated away or closed the tab. When the PagePlatformis Native Mobile, the PageNum- fields indicate the number of events that occurred between when an app was opened or foregrounded andbackgrounded or closed. |
Fullstory-derived Events | PageNumDerivedEvents | The total number of Fullstory-derived events that occurred on the page. This includes FS API validation events such as rate-limiting and invalid arguments. |
Max Scroll Depth Percent | PageMaxScrollDepthPercent | A percentage representing the max depth that the user scrolled down the page. Present only for EventType “navigate”. |
Screen Width | PageScreenWidth | The width of the CSS Resolution of the screen in pixels. |
Screen Height | PageScreenHeight | The height of the CSS Resolution of the screen in pixels. |
Viewport Width | PageViewportWidth | The width of the viewport size of the browser in pixels. |
Viewport Height | PageViewportHeight | The height of the viewport size of the browser in pixels. |
Page Insights ID | PageClusterId | An internal identifier used by Fullstory to group pages together for Page Insight analysis. |
Event Fields
Name | Export Field Name | Description |
---|---|---|
Event Time | EventStart | The absolute time when the event occurred, in UTC, represented as a dateTime from the XML Schema Specification, e.g. 2018-01-04T20:07:11.191Z. |
Event Type | EventType | The type of event that was captured. Typical types are:
See Event Types for a complete list. |
Event SubType | EventSubType | If present, a refinement of the EventType field. See Event Sub Types for a complete list. |
Event Custom Name | EventCustomName | The name of the event, if it is a custom event. The EventType field will have "custom" as its value as well for custom events. |
Custom Event Variables | EventVars | If you're passing any custom event properties into Fullstory, we'll include them in the export. |
Event Target Text | EventTargetText | Where applicable, this contains the text of the event target and its child elements. For example, if the user clicked a button that says “Pay now”, the event target text would be “Pay now”. Long text may be truncated in some cases for performance reasons. |
Event Target Selector | EventTargetSelector |
Where applicable, this contains the CSS selector for the event target. This will be a fully qualified descendant selector, starting from the HTML element, and including all CSS selectors of elements that appear in the DOM when walking from the HTML element through its children to the event target.
Note: Most non-alphanumeric characters within a selector will be encoded, e.g. “.my%2Dclass” rather than “.my-class”. |
Event Duration | EventDuration | If present, indicates that the event has some duration associated with it. When the EventType is “seen”, this value is the duration in milliseconds that the watched element was rendered. |
Event Secondary Duration | EventSecondaryDuration | If present, indicates that the event has a secondary duration associated with it. When the EventType is “seen”, this value is the duration in milliseconds that the watched element was visible. |
Event Page Offset | EventPageOffset |
The time in milliseconds since the page was loaded. |
Event Session Offset | EventSessionOffset |
The time in milliseconds since the session was started. |
Cumulative Layout Shift | EventCumulativeLayoutShift | The cumulative layout shift score, only present when EventType is “cumulative_layout_shift”. |
First Input Delay | EventFirstInputDelay | The duration, in milliseconds, of a first input delay measurement on a page. Only present when EventType is “first_input_delay”. |
Event Web Source File URL |
EventWebSourceFileUrl |
If the EventType is “exception”, then this is the javascript source file associated with the error. |
Event Mobile Source File URL |
EventMobileSourceFile |
Android only. If the EventType is “exception”, then this is the mobile source file associated with the error. |
Request URL | ReqUrl | If the EventType is “request”, the URL for the corresponding XHR request. |
RequestMethod | ReqMethod | If the EventType is “request”, the HTTP request method for the corresponding XHR request. |
Request Status | ReqStatus | If the EventType is “request”, the HTTP response status code for the corresponding XHR request. |
Behavior Heuristics
For some events, one of a series of modifier fields will be set to provide additional information regarding user behavior.
Name | Export Field Name | Description |
---|---|---|
Rage Clicks | EventModFrustrated | Your customer clicked one or more elements on the page many times in rapid succession, potentially because they were frustrated. For each of the click events in this series of clicks, the numeric value of this field is a running total of the number of clicks that have occurred. It will be zero for click events that were not part of a series of rage clicks. Learn more about rage clicks. |
Dead Clicks | EventModDead | Your customer clicked something, but nothing happened. Will be 1 for dead clicks, zero for non-dead clicks. |
Error Clicks | EventModError |
Your customer clicked something and a console error was generated, either by an actual error occurring, or by logging an error to the console. Typical types are:
*Prior to 06-21-2021, this field did not distinguish between different types of errors. |
Suspicious Actions | EventModSuspicious | Your customer entered text or navigated to a URL that was suspicious. When set to zero, nothing was suspicious. When 1, it indicates a possible SQL injection attack. When 2, it indicates a possible cross site scripting attack. Learn more about suspicious activity detection. |
Error Kind Token | EventVarErrorKind | Error kind token indicating error (if an error is present) for this event. Typically will only be provided if EventType ends with “_error”. |
Field Error | EventVarFields | Fields relevant to the error (if an error is present). Typically used to indicate custom properties that triggered an error. |
Console Statistics
Name | Export Field Name | Description |
---|---|---|
Console Infos/Logs | PageNumInfos | The number of times the JavaScript function console.log() was called, plus the number of times console.info() was called on the page. This is a running total for the page, and will steadily increase until the user navigates to a new page. |
Console Warnings | PageNumWarnings | The number of times console.warn() was called on the page. This is a running total for the page. |
Console Errors | PageNumErrors | The number of times console.error() was called, plus the number of JavaScript errors that occurred on the page. This is a running total for the page. |
Environment Fields
Name | Export Field Name | Description |
---|---|---|
Latitude/ Longitude |
PageLatLong | The latitude/longitude corresponding to this session. These values are derived using IP geolocation, which is only capable of pinpointing a user’s general area, often just at the city level, not their exact location. |
User Agent | PageUserAgent | The full user agent string for the system on which this session was captured. |
Browser | PageBrowser | The browser that was used for this session, as derived from the User Agent. Current possible values: Chrome, Firefox, Internet Explorer, Microsoft Edge, Safari, Opera, Mobile App, Yandex, Robot, Unknown. New values may be added to this list at a later date. |
Browser Version | PageBrowserVersion | The browser version that was used for this session, as derived from the User Agent. |
Device | PageDevice | The device type that was used for this session, as derived from the User Agent. Current possible values: Desktop, Mobile, Tablet, Robot, Unknown. New values may be added to this list at a later date. |
Operating System | PageOperatingSystem | The operating system type that was used for this session, as derived from the User Agent. Current possible values: Android, Chrome OS, OS X, iOS, Windows, Windows Phone, Linux, Robot, Unknown. New values may be added to this list at a later date. |
Platform | PagePlatform | The platform that was used for this session. Current possible values: Web, Native Mobile |
Dev Tools Fields
All of the following fields represents the duration (in milliseconds) since the page began to load until the corresponding event was fired.
DOM Content Loaded | LoadDomContentTime | The time (in milliseconds) that DOMContentLoaded fires, when the initial HTML document has been loaded and parsed. Often this milestone occurs before stylesheets, images, and sub-frames finish loading, so the DOMContentLoaded event occurs before a page is done painting. Present only for EventType “load”. |
Page Load | LoadEventTime | The time (in milliseconds) that the onload event or "Page Load" fires, when the whole page and all of its dependent resources have finished loading. Page Load often occurs later, after the point in time when the page is rendered and interactive for a user. Present only for EventType “load”. |
First Contentful Paint | LoadFirstPaintTime | The First Contentful Paint time (in milliseconds) for the page load. First Contentful Paint is the moment when the first "above-the-fold" layout change has happened and when web fonts have loaded. Present only for EventType “load”. |
Largest Contentful Paint | LoadLargestPaintTime | The Largest Contentful Paint time (in milliseconds) for the page load. Largest Contentful Paint is the time that it takes for the largest "above-the-fold" element to be rendered on a page. Present only for EventType “load”. |