Google Analytics

Google Analytics is an analytics product. You can track Rover events into it using the following sample integration. You may need to customize it to get the best value out of the tool.


Tracking Screen Views

After integrating both the Rover and Google Analytics SDKs into your project, your goal will be to send the Rover events to Google Analytics as suitable GA events.

Rover.shared?.eventEmitter?.addEventListener(object : RoverEventListener {
    override fun onScreenPresented(event: RoverEvent.ScreenPresented) {
        super.onScreenPresented(event)
        val experienceName = event.experience.name
        val screenName = event.screen.name
        val tracker = application.getDefaultTracker()

        tracker.setScreenName("Rover / $experienceName / $screenName")
        val builder = HitBuilders.ScreenViewBuilder()

        tracker.send(builder.build())
    }
})

Additional Events


Rover Block Tapped

Rover.shared?.eventEmitter?.addEventListener(object : RoverEventListener {
    override fun onBlockTapped(event: RoverEvent.BlockTapped) {
        super.onBlockTapped(event)

        val tracker = application.getDefaultTracker()
        val builder = HitBuilders.EventBuilder()
            .setCategory("Rover Block")
            .setAction("Tapped")
            .setLabel(event.block.name)

        tracker.send(builder.build())
    }
})

Rover Poll Answered

Rover.shared?.eventEmitter?.addEventListener(object : RoverEventListener {
    override fun onPollAnswered(event: RoverEvent.PollAnswered) {
        super.onPollAnswered(event)

        val tracker = application.getDefaultTracker()
        val builder = HitBuilders.EventBuilder()
            .setCategory("Rover Poll")
            .setAction("Answered")
            .setLabel(event.option.text)

        tracker.send(builder.build())
    }
})

Custom Dimensions


If you wish to track additional information from Rover into Google Analytics, you may do so using Custom Dimensions.

You must manually create the Custom Dimensions in your Google Analytics settings web interface before you continue.

Then, using the indices you assigned to the Rover properties of interest, you will pass the matching index and property value to the .setCustomDimension() function on the EventBuilder or ScreenViewBuilder depending on the type of event being tracked.

The following are code snippets you may use within the above examples for tracking the Screen View, Block Tapped, and Poll Tapped events respectively.

NB. For the purposes of illustration, we have numbered them from Custom Dimension index #1, but in your setup they may well be different.

For Screen Viewed:

builder.setCustomDimension(1, event.experience.id)
builder.setCustomDimension(2, event.experience.name)
builder.setCustomDimension(3, event.screen.id)
builder.setCustomDimension(4, event.screen.name)  

And you may include the following additional for “Rover Block Tapped”:

builder.setCustomDimension(5, event.block.id)
builder.setCustomDimension(6, event.block.name)

And finally, you may include the following for “Rover Poll Answered”:

builder.setCustomDimension(7, event.option.id)