Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@snowplow/react-native-tracker

Package Overview
Dependencies
Maintainers
3
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@snowplow/react-native-tracker

A library for tracking Snowplow events in React Native

  • 0.1.0-alpha.13
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
9.1K
decreased by-5.14%
Maintainers
3
Weekly downloads
 
Created
Source

@snowplow/react-native-tracker

Disclaimer

This project is currently in alpha status.

Feedback and contributions are welcome - if you have identified a bug, please log an issue on this repo. For all other feedback, discussion or questions please open a thread on our discourse forum.

Due to pending design decisions, breaking changes in how the methods are called may be introduced before a beta/v1 release.

Getting started

From the root of your react-js project:

$ npm install @snowplow/react-native-tracker --save

Instrumentation

The tracker will be imported as a NativeModule. Initialise it then call the relevant tracking method:

import {NativeModules} from 'react-native';

let RNSnowplowTracker = NativeModules.RNSnowplowTracker;
RNSnowplowTracker.initialize('test-endpoint-url', 'post', 'https', 'namespace', 'app-id', {});
RNSnowplowTracker.trackSelfDescribingEvent({'schema': 'iglu:com.acme/event/jsonschema/1-0-0', 'data': {'message': 'hello world'}}, []);

Running on iOS

For iOS, the tracker's dependencies must be installed as frameworks.

First add use_frameworks! to your app's Podfile. Then:

cd ios && pod install && cd ..

Run the app with: react-native run-ios from the root of the project.

Running on Android

react-native run-android from the root of the project.

Available methods

Note:

Optional string arguments if not set must be specified as null. Optional object arguments must be provided as an empty object if none are set. Optional keys within an object argument can be omitted if not set. Optional array arguments must be provided as empty arrays if not set.

Instantiate the tracker:

initialize(string endpoint, string method (post or get), string protocol (https or http), string namespace, string appId, JSON options<boolean setAutotrackScreenViews>)

Arguments:

endpoint - required, collector endpoint string (without protocol) method - required, http method (get/post) protocol - required, http protocol (http/https) namespace - required, tracker namespace appId - required, appId

options - JSON object of optional parameter key value pairs.

Available options:

setAutotrackScreenViews - boolean, if enabled the tracker will attempt to autotrack screen views via the same method as the native iOS and Android trackers. Note that this feature depends on Activities/ViewDidAppear within the native app itself.

RNSnowplowTracker.initialize('test-endpoint-url', 'post', 'https', 'namespace', 'app-id', {setAutotrackScreenViews:false})

Track a custom event:

trackSelfDescribingEvent(JSON event, Array<JSON> contexts)

Arguments:

event - required, Snowplow self-describing JSON for the custom event. contexts - array of optional Snowplow self-describing JSONs for custom conexts.

Example

RNSnowplowTracker.trackSelfDescribingEvent({'schema': 'iglu:com.acme/event/jsonschema/1-0-0', 'data': {'message': 'hello world'}}, []);

Track a structured event:

trackStructuredEvent(string category, string action, string label, string property, number value, Array<JSON> contexts)

Arguments:

category - required, structured event category. action - required, structured event action. label - optional, structured event label. property - optional, structured event property. value - optional, structured event value. contexts - array of optional Snowplow self-describing JSONs for custom conexts.

Example

RNSnowplowTracker.trackStructuredEvent('category', 'action', 'label', 'property', 50.00, [])

Track a Screen View (manually):

trackScreenViewEvent(string screenName, UUID4 string screenId, string screenType, string previousScreenName, string previousScreenType, UUID4 string previousScreenId, string transitionType, Array<JSON> contexts)

Arguments:

screenName - required, name of current screen. screenId - optional UUID4 string to be used as screen View identifier. Denotes one instance of a screen. view (not one instance of a screen). The react-native tracker will provide a UUID4 if not set. screenType - optional type of current screen. previousScreenName - optional, name of previous screen (user must define logic to grab last screen name). previousScreenType - optional, type of previous screen (user must define logic to grab last screen type). previousScreenId - optional, screenId of previous screen (user must define logic to grab last screen. id). The react-native tracker will leave this value empty if not set. transitionType - optional, the transition type between the last screen and current. contexts - array of optional Snowplow self-describing JSONs for custom conexts.

Example

RNSnowplowTracker.trackScreenViewEvent('Name', null, null, null, null, null, null, [])

Keywords

FAQs

Package last updated on 14 Oct 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc