@deerden/qualetics-react-native-sdk
TypeScript icon, indicating that this package has built-in type declarations

0.1.2 • Public • Published

qualetics-react-native-sdk

Installation

Install peer dependencies

$ npm install @react-native-async-storage/async-storage --save $ npm install react-native-native-mqtt --save

Install SDK

$ npm install @deerden/qualetics-react-native-sdk --save

Usage

Example

import QualeticsService from "@deerden/qualetics-react-native-sdk";


const qualetics = new QualeticsService("qualeticstest", "supersecretpassword", "nlp", false, {
  host: 'tcp://api.qualetics.com',
  port: 1883,
  defaultActor: {
    type: "User",
    id: "1234",
  }
});

qualetics.init();

/*
...
*/

<Button onPress={() => {
  qualetics.send({
    "actor": {
      "type": "User",
      "id": "js1234"
    },
    "action": {
      "type": "ButtonClick"
    },
    "context": {
      "type": "Button",
      "name": "Button1"
    }
  });
}} title="Press" />

Options

Initialize event tracker

  var qualetics = new Qualetics.service("YOUR_APPLICATION_ID", "YOUR_APPLICATION_SECRET", "SESSION_PREFIX" /* , false (Optional, currently always false since automatic page tracking is not supported on react native, Options (Optional) object containing additional options ) */).init();

You can provide few options when construction the tracker instance.

{
  host: string, // Host that tracker will connect to, defaults to ws://api.qualetics.com

  port: number, // Port that tracker will connect to, defaults to 8083

  defaultActor: Actor object // Default actor for all the messages

  stickySessionId: boolean, // Store sessionId as cookie, defaults to true, only usable on browser
                            // If stored sessionId has different session prefix than what is configured
                            // new session id will be generated and it will be stored

  storeDefaultActorFromApiCall: boolean, // Store default actor from api call, defaults to true, only usable on browser
                                        // This setting will have no effect if default actor setting is set
  trackUserGeoLocation: boolean  // Currently not supported on react-native
  trackPageVisibilityChanges: boolean //Currently not supported on react native
}

Sending events

After the tracker has been initialized you can start sending events. Data format in the event should be:

{
  "actor": {
    "type": "User", // Required
    "id": "js1234", // Optional, id of the user
    "attributes": { //Optional, key - value pairs that can provide more data about the actor
      "name": "John Doe",
      "age": "31",
      "address": {
        "street": "Test street 1",
        "zip": "50100"
      }
    }
  },
  "action": {
    "type": "New User", // Required
    "attributes": { // Optional, key - value pairs that can provide more data about the action
      "referrer": "Facebook",
      "coupon": "KIHSK123FS"
    }
  },
  "context": {
    "type": "Course", // Require
    "id": "12321123", // Optional, identifier for the context
    "attributes": { // Optional, key - value pairs that can provide more data about the context
      "speaker": "Jane Doe"
    }
  }
}

Events can be sent either by sending the complete JSON object

    qualetics.send({
      "actor": {
        "type": "User",
        "id": "js1234"
      },
      "action": {
        "type": "ButtonClick"
      },
      "context": {
        "type": "Button",
        "name": "Button1"
      }
    });

or using the builder message builder

    let message = qualetics.createMessage();
    message.setAction({
      type: "ButtonClick"
    }).setActor({
      type: "User",
      id: "js1234"
    }).setContext({
      type: "Button",
      name: "Button2"
    }).send();

Events

Currently you can listen to connection events from the tracker if you for some reason want to wait until tracker has connected. This is not necessary since the tracker will sent events when to connection is made is it wasn't at the time of the sending.

  qualetics.onConnect(() => {
    console.log("Connected");
  });

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.1.2
    0
    • latest

Version History

Package Sidebar

Install

npm i @deerden/qualetics-react-native-sdk

Weekly Downloads

0

Version

0.1.2

License

none

Unpacked Size

28 kB

Total Files

13

Last publish

Collaborators

  • deerdensoftware
  • metatavu