Our documentation is changing, please click here to enjoy it!

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.





To use the additional parameters of the custom events for targeting purposes, they must formatted as a valid JSON string. Only strings are accepted as key. For the value, only strings, numbers and booleans are accepted. Use a timestamp to represent a date.

If you want to track a custom event use the trackEvent method. Events types below 1000 are reserved for the library internal usage. You can use custom event types starting from 1001.

Code Block
var eventParams = {
    "string-type-field": "value",
    "bool-type-field": true,
    "number-type-field": 7201,
    "date-type-field": Math.floor(Date.now() / 1000)
BMA4S.trackEvent(1001, JSON.stringify(eventParams));


Each event needs to be defined in the Accengage User Interface. Go to Settings > Advanced Settings, and add a new event of type Custom with the code used in trackEvent method. The label is only used for a display purpose.

Using Analytics

You can track specific events like “Add to Cart”, “Purchase” and “Lead”. Here is how to use each of these events.


If you want to send a Lead, you can add to your code:

Code Block
BMA4S.trackLead('Lead Label','Lead Value')

Add to Cart

If you want to track an Add to Cart event, add to your code:

Code Block
BMA4S.trackAddToCart('CartId', 'ArticleID', 'Label', 'Category', 'Currency', 12.30, 1)

Note: Currency should be a valid 3 letters ISO4217 currency (EUR,USD,..) and the 2 last arguments are price and quantity.


If you want to track a Purchase event, you can add to your code:

Code Block
BMA4S.trackPurchase('Purchase ID', 'Purchase Currency', 12.30)

Note: Currency should be a valid 3 letters ISO4217 currency (EUR,USD,..) and the last argument is the total price of this purchase.

Update Device Information

You can create a device profile for each device in order to qualify the profile (for example, registering whether the user is opt in for or out of some categories of notifications). A device profile is a set of key/value that are uploaded to Accengage server. In order to update information about a device profile, add the following lines to your code:

Code Block

Replace “key” and “value” with the segmentation key name and the value you want to set.


The keys and values must match Accengage user information field names and values to allow information to be correctly updated.

Date Format

You can send a date using the updateDeviceInfo method.

Your date has to be in the following format: “yyyy-MM-dd HH:mm:ss zzz”

Manually Update Geolocation (Android only)

Geolocation is automatically updated and sent to our servers if "android_no_geoloc" is false inside BMA4SCordovaConfig.json

If you want to manually update the current location of the device, you can call:

Code Block
BMA4S.updateGeolocation(latitude, longitude, altitude, accuracy);
//Example : BMA4S.updateGeolocation(40.12, 2.12, 20, 50)

Enable/Disable Location Services (iOS)

You can enable geolocation, geofence and beacon services at any time by calling:

Code Block

To disable geolocation, geofence and beacon services, simply use the following:

Code Block


If you want to tag each Fragment/Tabs/Activity and be able to target it, you can use the following code as soon as a view is displayed:

Code Block

Where your-view is the name of your view.

States (Android only)

In Accengage Interface, you can “Declare a State” (Applications → Advanced Parameters). States are like browser cookies which can be used to trigger Accengage In-App notifications. You can target one or more states and combine them with Event or ViewTag.

Example: When event 5000 is triggered and state “search” contains “pizz*”, display a specific In-App.

The following section explains how to declare certain states with the Accengage SDK.

Put a State

You can obtain the name of the state from the Accengage “value” field in Applications → Advanced Parameters → States section.

In order to put a state, write this code:

Code Block
BMA4S.putState('search', 'myValue')

Where "search" is the state name and “myValue” is the value you want to put for this state.

Static Lists

Include Page
Static Lists
Static Lists