Skip to content
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Latest commit

 

History

History
404 lines (309 loc) · 10.2 KB

File metadata and controls

404 lines (309 loc) · 10.2 KB

Interaction schema

    User 
      |
      v
Qubit SDK ReactNative  
      |
      v
 Javascript ReactNative Bridge API 
    |                            |
    v                            v
Android Bridge API         iOS Bridge API     
    |                            |
    v                            v
Qubit SDK Android           Qubit SDK iOS

Javascript ReactNative Bridge API

List of functions of Javascript module, which have to be implemented in native modules for both platforms: Android and iOS.

  • init
  • sendEvent
  • enableTracker
  • getTrackingId
  • getDeviceId
  • getLookupData
  • getExperiences
  • experienceShown
  • getPlacement
  • placementImpression
  • placementClickthrough

init(trackingId, logLevel)

Description

Initialization of SDK. It should be called as early as possible after application start, only once and before any other interaction with the API.

Parameters

  • trackingId
    • Type: String
    • Constraints: Not null, not empty
    • Description: Tracking id (identifier of application/company etc.)
  • logLevel
    • Type: String
    • Constraints: Not null. One of values: SILENT, ERROR, WARN, INFO, DEBUG, VERBOSE. Any other value causes setting default value, which is WARN.
    • Level of logs produced by native SDK.

Result

None

Example

QubitSDK.init("miquido", "DEBUG");

sendEvent(eventType, eventBody)

Description

Sends event to the server.

Parameters

  • eventType
    • Type: String
    • Constraints: Not null
    • Description: Type of event. eg. ecView
  • eventBody
    • Type: Javascript map of any structure
    • Type: Not null
    • Description: Event body

Result

None

Exceptions

  • Exception is thrown, when SDK is not initialized.

Example

QubitSDK.sendEvent("ecView", { "type": "button", "value": "click" });  

enableTracker(enable)

Description

Enables or disables receiving events.

Parameters

  • enable
    • Type: Boolean
    • Constraints: Not null
    • Description: true for enabling, false for disabling

Result

None

Exceptions

  • Exception is thrown, when SDK is not initialized.

Example

QubitSDK.enableTracker(false);  

getTrackingId()

Description

Returns trackingId. Debug purposes.

Parameters

None

Result

Promise with String trackingId.

Exceptions

  • Exception is thrown, when SDK is not initialized.

Example

async function asyncFunction() {
    var deviceId = await QubitSDK.getTrackingId();
    ...
}  

getDeviceId()

Description

Returns device id established by the SDK. Debug purposes.

Parameters

None

Result

Promise with String deviceId.

Exceptions

  • Exception is thrown, when SDK is not initialized.

Example

async function asyncFunction() {
    var deviceId = await QubitSDK.getDeviceId();
    ...
}  

getLookupData()

Description

Returns current Lookup Data. Debug purposes. Although it returns Promise, it returns value only if SDK have these information at the moment of the function call.

Parameters

None

Result

Promise with Javascript map:

{ viewNumber: 10,
  sessionNumber: 4,
  lastViewTs: 1863218003,
  ipLocation: 
   { regionCode: '36004',
     region: 'unknown',
     longitude: 19.9612,
     latitude: 50.0495,
     countryCode: 'PL',
     country: 'poland',
     cityCode: '1803',
     city: 'krakow',
     areaCode: 'unknown',
     area: 'unknown' },
  ipAddress: '93.180.179.112',
  firstViewTs: 1696635454 
}

Exceptions

  • Exception is thrown, when SDK is not initialized.
  • Exception is thrown, when SDK hasn't fetched Lookup data from server yet.

Example

async function asyncFunction() {
    var lookupData = await QubitSDK.getLookupData();
    ...
}  

getExperiences(experienceIds, isVariationSet, variation, isPreviewSet, preview, isIgnoreSegmentsSet, ignoreSegments)

Description

Returns list of Experiences.

Parameters

  • experienceIds
    • Type: Array of Integers
    • Constraints: Not null.
    • Description: List of experiences ids. When array is empty, returns all experiences.
  • isVariationSet
    • Type: Boolean
    • Constraints: Not null.
    • Description: Is variation parameter meaningful?
  • variation
    • Type: Integer
    • Constraints: Not null.
    • Description: Meaningful only when isVariationSet is true?
  • isPreviewSet
    • Type: Boolean
    • Constraints: Not null.
    • Description: Is preview parameter meaningful?
  • preview
    • Type: Boolean
    • Constraints: Not null.
    • Description: Meaningful only when isPreviewSet is true?
  • isIgnoreSegmentsSet
    • Type: Boolean
    • Constraints: Not null.
    • Description: Is ignoreSegments parameter meaningful?
  • ignoreSegments
    • Type: Boolean
    • Constraints: Not null.
    • Description: Meaningful only when isIgnoreSegmentsSet is true?

Result

Promise with an array of Experiences objects. Example:

[ 
  { variation: 852190,
    payload: {},
    isControl: false,
    id: 143640,
    callback: 'https://sse.qubit.com/v1/callback?data=igKAeyJFeHBlcmllbmNlSWQiOjE0MzY0MCwiSXRlcmF0aW9uARUsMzc2MDY3LCJWYXJpFRUUODUyNzc0HRUUTWFzdGVyATAQODUyMTkBRXBzQ29udHJvbCI6ZmFsc2UsIlRyYWZmaWNBbGxvYwVKTCI6MC40NzUsIlByb2JhYmlsaXR5ARRQODI1NjI2MTk0NTgyNDQ5MSwiUGlkVhkAGFRlbXBsYXQFvwxudWxsBWZMY2tpbmdJZCI6Im1pcXVpZG8iLCIBjQhleHQFFkQ4MmFjYzNiY2FiYmNhYzM2In0=' 
  },
  { variation: 855620,
    payload: { show_share: false,
      show_sale_banner: false,
      sale_banner: 'https://dd6zx4ibq538k.cloudfront.net/static/images/5010/626263d0b3d3230f4062da1e0d1395ad_1300_554.jpeg',
      free_shipping: 'Shipping is free for you!' },
    isControl: false,
    id: 144119,
    callback: 'https://sse.qubit.com/v1/callback?data=jAKAeyJFeHBlcmllbmNlSWQiOjE0NDExOSwiSXRlcmF0aW9uARUsNDUyOTEwLCJWYXJpFRUYMTAxMDcyMh0WFE1hc3RlcgExmDg1NTYyMCwiSXNDb250cm9sIjpmYWxzZSwiVHJhZmZpY0FsbG9jYQFgSCI6MC4yNSwiUHJvYmFiaWxpdHkBE2A0ODAwMTM4OTg0MjEwNjM3MywiUGlkIjowThoAGFRlbXBsYXQFwQxudWxsBWdMY2tpbmdJZCI6Im1pcXVpZG8iLCIBjghleHQFFkQ4MmFjYzNiY2FiYmNhYzM2In0=' 
  },
  { variation: 972984,
    payload: {},
    isControl: true,
    id: 160862,
    callback: 'https://sse.qubit.com/v1/callback?data=iQKAeyJFeHBlcmllbmNlSWQiOjE2MDg2MiwiSXRlcmF0aW9uARUsNDM0NjIzLCJWYXJpFRUUOTcyOTg0HRUUTWFzdGVyATARG3BJc0NvbnRyb2wiOnRydWUsIlRyYWZmaWNBbGxvYwVJRCI6MC41LCJQcm9iYWJpbGl0eQESVDAzNjQzMTAyMTQ3MTU5ODkyLCJQaWRaGgAYVGVtcGxhdAW-DG51bGwFZhBja2luZwGLKCJtaXF1aWRvIiwiAYwIZXh0BRZEODJhY2MzYmNhYmJjYWMzNiJ9' 
  } 
]

Exceptions

  • Exception is thrown, when SDK is not initialized.

Example

async function asyncFunction() {
    var experiences = await QubitSDK.getExperiences([], false, 0, false, false, false, false);
    ...
}  

experienceShown(callback)

Description

Sends to server information, that experience was shown

Parameters

  • callback
    • Type: String
    • Constraints: Not null.
    • Description: Value of callback property in the result of getExperiences function.

Result

None

Exceptions

  • Exception is thrown, when SDK is not initialized.

Example

QubitSDK.experienceShown("https://sse.qubit.com/v1/callback?data=igK....n0=");

getPlacement(placementId, mode, attributes, campaignId, experienceId, placementPromise)

Description

Returns Placement for given parameters.

Parameters

  • placementId
    • Type: String
    • Constraints: Not null
    • Description: Unique ID of the placement.
  • mode
    • Type: String
    • Constraints: Can be one of LIVE/SAMPLE/PREVIEW.
    • Description: The mode to fetch placements content with. Defaults to LIVE.
  • attributes
    • Type: String
    • Constraints: Should be string description of JSON or null
    • Description: JSON string containing custom attributes to be used to query for the placement. "visitor" attribute will be ignored as it is set by SDK.
  • campaignId
    • Type: String
    • Constraints: Nullable
    • Description: Campaign identifier
  • experienceId
    • Type: String
    • Constraints: Nullable
    • Description: Experience identifier

Result

Promise with a map describing Placement object:

 {
    "content": { ... }
    "impressionUrl": "https://api.qubit.com/placements/callback?data=ggW4eyJtZXRhIjp7ImlkIjo",
    "clickthroughUrl": "https://api.qubit.com/placements/callback?data=mQW4eyJtZXRhIjp7Imlkx"
 }

The structure of response content depends on the type of placement that is being called.

Exceptions

  • Exception is thrown, when SDK is not initialized.

Example

async () => {
  const placement = await QubitSDK.getPlacement(
 	  "placement_id",
 	  "LIVE",
 	  "{ \"color\": \"blue\"}",
 	  "campaign_id",
 	  "experience_id"
   );
   ...
}

placementImpression(callbackUrl)

Description

Sends request to URL described by placement impression callback.

Parameters

  • callbackUrl
    • Type: String
    • Constraints: Not null
    • Description: Impression callback URL.

Result

None

Example

async () => {
  const placement = await QubitSDK.placementImpression(
    "https://some.url.com"
  );
  ...
}

placementClickthrough(callbackUrl)

Description

Sends request to URL described by placement clickthrough callback.

Parameters

  • callbackUrl
    • Type: String
    • Constraints: Not null
    • Description: Clickthrough callback URL.

Result

None

Example

async () => {
  const placement = await QubitSDK.placementClickthrough(
    "https://some.url.com"
  );
  ...
}