react-native-kochava-measurement
Version:
A lightweight and easy to integrate SDK, providing first-class integration with Kochava’s installation attribution and analytics platform.
377 lines (372 loc) • 12.1 kB
JavaScript
;
import { KochavaMeasurementDeeplink, KochavaMeasurementInstallAttribution, KochavaMeasurementConfig } from 'react-native-kochava-measurement';
import KochavaMeasurement from './NativeKochavaMeasurement';
/**
* Implementation for native platforms. Supported platforms are Android, Android TV, iOS, and tvOS.
*/
export class KochavaMeasurementImpl {
// Internal state for EAI listeners
_configCompletedListener = null;
constructor() {
KochavaMeasurement.onExecuteAdvancedInstruction(result => {
if (result.id === "configCompletedListener") {
// Parse the serialized JSON string into KochavaMeasurementConfig object
const dataObj = JSON.parse(result.data);
const config = new KochavaMeasurementConfig(dataObj["config"]);
// Call the stored listener with the parsed object
if (this._configCompletedListener != null) {
this._configCompletedListener(config);
}
}
});
}
executeAdvancedInstruction(name, value) {
if (KochavaMeasurement == null) {
return;
}
KochavaMeasurement.executeAdvancedInstruction(name, value, null);
}
setLogLevel(logLevel) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
logLevel: logLevel
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_setLogLevel", JSON.stringify(parameters), null);
}
setSleep(enabled) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
enabled: enabled
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_setSleep", JSON.stringify(parameters), null);
}
setAppLimitAdTracking(enabled) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
enabled: enabled
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_setAppLimitAdTracking", JSON.stringify(parameters), null);
}
registerCustomDeviceIdentifier(name, value) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
name: name,
value: value
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_registerCustomDeviceIdentifier", JSON.stringify(parameters), null);
}
registerCustomStringValue(name, value) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
name: name,
value: value
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_registerCustomValue", JSON.stringify(parameters), null);
}
registerCustomBoolValue(name, value) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
name: name,
value: value
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_registerCustomValue", JSON.stringify(parameters), null);
}
registerCustomNumberValue(name, value) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
name: name,
value: value
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_registerCustomValue", JSON.stringify(parameters), null);
}
registerIdentityLink(name, value) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
name: name,
value: value
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_registerIdentityLink", JSON.stringify(parameters), null);
}
enableAppleAppClips(identifier) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
identifier: identifier
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_enableAppleAppClips", JSON.stringify(parameters), null);
}
enableAppleAtt() {
if (KochavaMeasurement == null) {
return;
}
KochavaMeasurement.executeAdvancedInstruction("wrapper_enableAppleAtt", "{}", null);
}
setAppleAttAuthorizationWaitTime(timeInterval) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
timeInterval: timeInterval
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_setAppleAttAuthorizationWait", JSON.stringify(parameters), null);
}
setAppleAttAuthorizationAutoRequest(enabled) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
enabled: enabled
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_setAppleAttAuthorizationAutoRequest", JSON.stringify(parameters), null);
}
setAppleAttAuthorizationCustomPrompt(enabled) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
enabled: enabled
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_setAppleAttAuthorizationCustomPrompt", JSON.stringify(parameters), null);
}
appleAttAuthorizationCustomPromptDidComplete() {
if (KochavaMeasurement == null) {
return;
}
KochavaMeasurement.executeAdvancedInstruction("wrapper_appleAttAuthorizationCustomPromptDidComplete", "{}", null);
}
registerPrivacyProfile(name, keys) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
name: name,
keys: keys
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_registerPrivacyProfile", JSON.stringify(parameters), null);
}
setPrivacyProfileEnabled(name, enabled) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
name: name,
enabled: enabled
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_setPrivacyProfileEnabled", JSON.stringify(parameters), null);
}
setConfigCompletedListener(configCompletedListener) {
if (KochavaMeasurement == null) {
return;
}
this._configCompletedListener = configCompletedListener;
KochavaMeasurement.executeAdvancedInstruction("wrapper_setConfigCompletedListener", "{}", "configCompletedListener");
}
setIntelligentConsentGranted(granted) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
granted: granted
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_setIntelligentConsentGranted", JSON.stringify(parameters), null);
}
getStarted() {
return new Promise(function (resolve, reject) {
if (KochavaMeasurement == null) {
reject(new Error("KochavaMeasurement failed to initialize"));
return;
}
KochavaMeasurement.executeAdvancedInstruction("wrapper_getStarted", "{}", "standard").then(value => {
const valueObj = JSON.parse(value);
resolve(valueObj["started"] ?? false);
}).catch(error => {
reject(error);
});
});
}
start(parameters) {
if (KochavaMeasurement == null) {
console.log("KVA/Measurement: ERROR: Attempting to start the SDK on an unsupported platform.");
return;
}
KochavaMeasurement.executeAdvancedInstruction("wrapper_start", JSON.stringify(parameters), null);
}
shutdown(deleteData) {
if (KochavaMeasurement == null) {
return;
}
// Internal cleanup
this._configCompletedListener = null;
// SDK Shutdown
const parameters = {
deleteData: deleteData
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_shutdown", JSON.stringify(parameters), null);
}
retrieveInstallId() {
return new Promise(function (resolve, reject) {
if (KochavaMeasurement == null) {
reject(new Error("KochavaMeasurement failed to initialize"));
return;
}
KochavaMeasurement.executeAdvancedInstruction("wrapper_retrieveInstallId", "{}", "standard").then(value => {
const valueObj = JSON.parse(value);
resolve(valueObj["installId"] ?? "");
}).catch(error => {
reject(error);
});
});
}
retrieveInstallAttribution() {
return new Promise(function (resolve, reject) {
if (KochavaMeasurement == null) {
reject(new Error("KochavaMeasurement failed to initialize"));
return;
}
KochavaMeasurement.executeAdvancedInstruction("wrapper_retrieveInstallAttribution", "{}", "standard").then(value => {
const valueObj = JSON.parse(value);
resolve(new KochavaMeasurementInstallAttribution(valueObj["installAttribution"] ?? {}));
}).catch(error => {
reject(error);
});
});
}
processDeeplink(path) {
return new Promise(function (resolve, reject) {
if (KochavaMeasurement == null) {
reject(new Error("KochavaMeasurement failed to initialize"));
return;
}
const parameters = {
path: path
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_processDeeplink", JSON.stringify(parameters), "standard").then(value => {
const valueObj = JSON.parse(value);
resolve(new KochavaMeasurementDeeplink(valueObj["deeplink"] ?? {}));
}).catch(error => {
reject(error);
});
});
}
registerDeeplinkWrapperDomain(domain) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
domain: domain
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_registerDeeplinkWrapperDomain", JSON.stringify(parameters), null);
}
processDeeplinkWithOverrideTimeout(path, timeout) {
return new Promise(function (resolve, reject) {
if (KochavaMeasurement == null) {
reject(new Error("KochavaMeasurement failed to initialize"));
return;
}
const parameters = {
path: path,
timeout: timeout
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_processDeeplink", JSON.stringify(parameters), "standard").then(value => {
const valueObj = JSON.parse(value);
resolve(new KochavaMeasurementDeeplink(valueObj["deeplink"] ?? {}));
}).catch(error => {
reject(error);
});
});
}
registerDefaultEventStringParameter(name, value) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
name: name,
value: value
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_registerEventDefaultParameter", JSON.stringify(parameters), null);
}
registerDefaultEventBoolParameter(name, value) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
name: name,
value: value
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_registerEventDefaultParameter", JSON.stringify(parameters), null);
}
registerDefaultEventNumberParameter(name, value) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
name: name,
value: value
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_registerEventDefaultParameter", JSON.stringify(parameters), null);
}
registerDefaultEventUserId(value) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
name: "user_id",
value: value
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_registerEventDefaultParameter", JSON.stringify(parameters), null);
}
sendEvent(name) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
eventName: name
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_sendEvent", JSON.stringify(parameters), null);
}
sendEventWithString(name, data) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
eventName: name,
eventDataString: data
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_sendEvent", JSON.stringify(parameters), null);
}
sendEventWithDictionary(name, data) {
if (KochavaMeasurement == null) {
return;
}
const parameters = {
eventName: name,
eventData: data
};
KochavaMeasurement.executeAdvancedInstruction("wrapper_sendEvent", JSON.stringify(parameters), null);
}
sendEventWithEvent(event) {
if (KochavaMeasurement == null) {
return;
}
const parameters = event != null ? event.getData() : {};
KochavaMeasurement.executeAdvancedInstruction("wrapper_sendEvent", JSON.stringify(parameters), null);
}
}
//# sourceMappingURL=KochavaMeasurementImpl.native.js.map