@essent/nativescript-salesforce-dmp
by essent | v1.1.0
A NativeScript plugin to use the Salesforce DMP mobile SDK.
npm i --save @essent/nativescript-salesforce-dmp

NativeScript plugin for Salesforce DMP

npm version

This is a plugin to use the Salesforce DMP SDK (Android v4.3.2, iOS v4.3.0). To use this plugin you need to have an account for Salesforce DMP.

Installation

Run the following command from the root of your project:

tns plugin add @essent/nativescript-salesforce-dmp

Setup (Android Only)

Make sure you add the following permissions to the AndroidManifest.xml file of your app:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Add the following services to the application tag in the AndroidManifest.xml file of your app (example):

<service android:name="com.krux.androidsdk.aggregator.EventPublisherService" android:enabled="true" />
<service android:name="com.krux.androidsdk.aggregator.ConsentService" android:enabled="true" />

Add play-services-ads to the dependencies in the app.gradle file of your app (example):

compile 'com.google.android.gms:play-services-ads:10.2.4'

Usage

To use nativescript-salesforce-dmp you must first import the module:

import { SalesforceDMP, KeyValue } from '@essent/nativescript-salesforce-dmp';

At the launch of your app call initialize with your config id:

SalesforceDMP.getInstance().initialize('YOUR_CONFIG_ID', true);

Consent

Before using Salesforce DMP the user needs to give consent. More information about these flags can be found in this support article.
To set the consent:

const consentAttributes: KeyValue<string> = {
pr: '1',
dc: '1',
al: '1',
tg: '1',
cd: '1',
sh: '0',
re: '1'
};
SalesforceDMP.getInstance().setConsent(consentAttributes);

To quickly remove all consent flags:

SalesforceDMP.getInstance().removeConsent();

Tracking

To track page views call trackPageView (optionally you can use pageAttributes and userAttributes):

SalesforceDMP.getInstance().trackPageView('TestPage', null, null);

To fire events call fireEvent:

const attributes: KeyValue<string> = {
event_id: 'YOUR_EVENT_ID', // this attribute is mandatory
myKey: 'An event value'
};
SalesforceDMP.getInstance().fireEvent('TestEvent', attributes);