FullStory Device Mode Integration
Send events to FullStory using RudderStack device mode.
This guide will help you send events to FullStory in device mode using their native web/mobile SDK.
Before sending events, follow the instructions in the
Setup guide to set up the FullStory device mode integration depending on your platform.
Identify
You can use the identify
method to uniquely identify a user in FullStory.
A sample identify
call is shown below:
rudderanalytics.identify("1hKOmRA4GRlm", {
displayName: "Alex",
email: "alex@example.com",
country: "US",
});
RudderStack translates the above call to FullStory’s identify
call as follows:
- Sends
userId
as uid
. - Passes the remaining traits as is.
In web device mode, RudderStack sends the anonymousId
of the user as uid
if you do not provide the userId
.
displayName
and email
are optional traits and FullStory handles them differently. Once specified in the identify
call, they show up automatically the next time you browse your user list in FullStory.
See FullStory documentation for more information.
Track
The track
call lets you track custom events as they occur in your web application.
A sample track
call is shown below:
rudderanalytics.track("Order Completed", {
orderId: "1234567",
price: "567",
currency: "USD",
});
RudderStack passes a track
call with all its associated event properties to FullStory via its FS.event method.
Page
The page
call lets you record your website’s page views, with any additional relevant information about the viewed page. By default, RudderStack sends all page
calls to FullStory as events.
A sample page
call is shown below:
rudderanalytics.page("homepage");
The above call sends a Viewed a Page
event to FullStory along with the following properties:
name
(homepage
in the above example)path
referrer
search
title
url
RudderStack also passes any additional properties in the page
call to FullStory.
Screen
The screen
call is the mobile equivalent of the page
call. It lets you record the screen views on your mobile app along with other relevant information about the screen.
RudderStack sends the screen
call to FullStory as a custom event.
A sample screen
call is shown below:
MainApplication.rudderClient.screen(
"Sample Screen Name",
RudderProperty().putValue("prop_key", "prop_value")
)
In the above snippet, RudderStack captures all the information related to the viewed screen, along with any additional info associated with that event. In FullStory, the above screen
call is shown as Screen Viewed
, along with the associated properties.
Reset
The reset
method resets the previously identified user and any related information. See FullStory Reset API for more information.
A sample reset
call for iOS is shown below:
[[RSClient sharedInstance] reset];
A sample reset
call for Android is shown below:
MainApplication.rudderClient.reset()
FAQ
How do I prevent FullStory from automatically recording on startup?
By default, FullStory automatically requests a session and starts recording on the app’s startup.
To start recording the app only when certain conditions are met, you can use FullStory’s RecordOnStart
feature. Configuring FullStory to disable RecordOnStart
prevents any recording until you explicitly invoke FS.restart
.
Follow these steps:
For iOS
In your iOS app’s Info.plist
FullStory dictionary, add a RecordOnStart
key of type Boolean
with a value of NO
.
See FullStory iOS documentation for more information.
For Android
Go to your FullStory plugin configuration (where you set the organiation ID) and set the following:
fullstory {
org 'YOUR_ORG_ID_HERE'
recordOnStart false
}
See FullStory Android documentation for more information.
How do I subclass from an application in Android?
FullStory requires that you enable MultiDex. If your minSdkVersion is set to 21 or higher, Multidex is enabled by default. In this case, you will need to extend android.app.Application
, otherwise there will be a build error. If your minSdkVersion is lower than 21, you will need to subclass from androidx.multidex.MultiDexApplication
instead.
If you’re using Java and if you do not have an application class, you will need to create one. In your App.java
, add the following:
import android.app.Application;
public class App extends Application {
...
}
If you’re using Kotlin and if you do not have an application class, you will need to create one and add the following in your App.kt
:
import android.app.Application
class App: Application() {
...
}
Then, set android:name="App"
in your AndroidManifest.xml
under the <application>
tag as shown:
<application
android:name="App" ….
Go to your settings.gradle
file located in the root, and then comment or remove this line: repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
as shown in the following snippet:
dependencyResolutionManagement {
// repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
jcenter() // Warning: this repository is going to shut down soon
}
}
rootProject.name = "FullStory_Sample_App"
include ':app'
For more information, see FullStory documentation.
Questions? Contact us by email or on
Slack