We are pleased to announce the release of our React Native Tracker version 1.4.0.
This release brings support for the Expo Go and managed workflow. In this setup, the tracker is not able to access the underlying native mobile trackers. To work around this limitation, the React Native tracker now also includes a JavaScript-only tracker to be used in this scenario.
The JavaScript-only implementation is more limited than the setup with native trackers. It provides basic functionality to manually track events with context entities and subject properties. However, it doesn’t yet have support for session tracking, various auto-tracking features in the React Native tracker and advanced emitter features such as batching and retries. Nevertheless, it opens the door for tracking Snowplow events in Expo Go and we are happy to receive feedback and improve the implementation in the future!
The release also updates the underlying native trackers to version 4.1 which brings improvements in anonymous tracking and tracking deep links, see here.
Enhancements
Add JavaScript tracker core to be used in Expo managed workflow when native trackers are not available (#188)
Under the hood
Bump Snowplow native tracker dependency to 4.1 (#186)
I am currently trying to implement the react native tracker in an Expo project. However, I get the following warning message: SnowplowTracker:Unable to access the native iOS/Android Snowplow tracker, a tracker implementation with very limited functionality is used.
Here are som questions I would love if you could answer
Does this mean that the tracker is setup but that it is currently a limited JavaScript version running?
How do I go about sending events from the tracker, do I treat it like I would the react native tracker or the javascript tracker when sending events?
Is there any documentation on how to use this limited version that works with Expo?
Hello @Kurr and welcome to the Snowplow community!
Does this mean that the tracker is setup but that it is currently a limited JavaScript version running?
Exactly! This is just a warning that the functionality of the tracker is limited on the managed workflow.
How do I go about sending events from the tracker, do I treat it like I would the react native tracker or the javascript tracker when sending events?
Even though this implementation is based upon the core of our JavaScript tracker, the React Native Tracker API is the one to be used.
Is there any documentation on how to use this limited version that works with Expo?
You can find more details about the Expo framework support currently offered by the React Native tracker in this page in the docs. Concerning the actual way to implement the tracker and the API, these are exactly the same as described in our main React Native tracker documentation.