qubit-sdk-react-native
Version:
React Native bridge for using native Qubit SDK libraries on iOS and Android
176 lines (175 loc) • 6.92 kB
TypeScript
/**
* Experience object
* @typedef {object} Experience
* @property {object} payload - payload object
* @property {boolean} isControl
* @property {number} id - Id of Experience
* @property {string} callback - Callback URL
* @property {number} variation - Indicates variation number
* @property {function} shown - Sends to server information, that experience was shown
*/
declare type Experience = {
payload: object;
isControl: boolean;
id: number;
callback: string;
variation: number;
shown: () => void;
};
declare type Placement = {
content: object;
impression: () => void;
clickthrough: () => void;
};
declare class QubitSDK {
/**
* Initialization of SDK. It should be called as early as possible after application start, only once and before any other interaction with the API.
* @param {string} trackingId Tracking id (identifier of application/company etc.)
* @param {'SILENT'|'ERROR'|'WARN'|'INFO'|'DEBUG'|'VERBOSE'} [logLevel='WARN'] Level of logs produced by native SDK.
* @returns {void} None
* @example
*
* QubitSDK.start("qubit", "DEBUG");
*/
start(trackingId: string, logLevel: 'SILENT' | 'ERROR' | 'WARN' | 'INFO' | 'DEBUG' | 'VERBOSE'): void;
/**
* Sends event to the server.
* @param {string} eventType Type of event. eg. ecView
* @param {object} eventBody Javascript map of any structure
* @returns {void} None
* @example
*
* QubitSDK.sendEvent("ecView", { "type": "button", "value": "click" });
*/
sendEvent(eventType: string, eventBody: object): void;
/**
* Enables or disables receiving events.
* @param {boolean} value true for enabling, false for disabling
* @returns {void} None
* @example
*
* QubitSDK.enable(false);
*/
enable(value: boolean): void;
/**
* Returns trackingId. Debug purposes.
* @returns {Promise<string>} Promise with String trackingId.
* @example
*
* async () => {
* const trackingId = await QubitSDK.getTrackingId();
* ...
* }
*/
getTrackingId(): Promise<string>;
/**
* Returns device id established by the SDK. Debug purposes.
* @returns {Promise<string>} Promise with String deviceId.
* @example
*
* async () => {
* const deviceId = await QubitSDK.getDeviceId();
* ...
* }
*/
getDeviceId(): Promise<string>;
/**
* Returns current Lookup Data. Debug purposes.
* @returns {Promise<string>} Promise with object. Although it returns Promise, it returns value only if SDK have these information at the moment of the function call.
* @example
*
* async () => {
* const lookupData = await QubitSDK.getLookupData();
* ...
* }
*
* { 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
* }
*/
getLookupData(): Promise<object>;
/**
* Returns list of Experiences.
* @param {array<number>} experienceIds List of experiences ids. When array is empty, returns all experiences.
* @param {number} [variation] Optional.
* @param {boolean} [preview] Optional.
* @param {boolean} [ignoreSegments] Optional.
* @returns {Promise<array<Experience>>} Promise with an array of Experience objects.
* @example
*
* async () => {
* const experiences = await QubitSDK.getExperiences([], 0, false, false);
* experiences.forEach(e => e.shown());
* ...
* }
*
* { 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'
* }
* ]
*/
getExperiences(experienceIds: Array<number>, variation?: number, preview?: boolean, ignoreSegments?: boolean): Promise<Experience[]>;
/**
* Returns Placement for given parameters.
* @param {string} placementId Unique ID of the placement.
* @param {string} [mode] The mode to fetch placements content with, can be one of LIVE/SAMPLE/PREVIEW. Defaults to LIVE.
* @param {string} [attributes] JSON string containing custom attributes to be used to query for the placement. "visitor" attribute will be ignored as it is set by SDK.
* @param {string} [campaignId] Optional.
* @param {string} [experienceId] Optional.
* @returns {Promise<Placement>} Promise with an object describing Placement object.
* @example
*
* async () => {
* const placement = await getPlacement(
* "placement_id",
* "LIVE",
* "{ \"color\": \"blue\"}",
* "campaign_id",
* "experience_id"
* );
* ...
* placement.impression();
* ...
* placement.clickthrough();
* }
*
* {
* "content": { ... }
* }
*/
getPlacement(placementId: string, mode?: string, attributes?: string, campaignId?: string, experienceId?: string): Promise<Placement>;
}
declare const _default: QubitSDK;
export default _default;