The low-code loyalty program maker.
This library is a part of the Scrimmage Rewards Program that is providing a solution for loyalty programs and rewards.
Tutorial can be found at Scrimmage Rewards Tutorial.
- Install the library
or
npm install @scrimmage/rewards
yarn add @scrimmage/rewards
-
Import the library in CommonJS:
const Scrimmage = require('@scrimmage/rewards');
or in ES6:
import Scrimmage from '@scrimmage/rewards';
-
Initialize the library for global usage
Scrimmage.initRewarder({ apiServerEndpoint: '<your api server endpoint>', privateKey: '<your private key>', namespace: '<environment, e.g. staging or production>', });
-
Use the library
await Scrimmage.reward.trackRewardable( 'unique-user-id', 'Data Type Name', { 'custom-property': 'custom-value', 'custom-property-2': { 'custom-property-2-1': 'custom-value-2-1', }, }, );
For one-time events you can use
trackRewardableOnce
method. Make sure to use unique event id.await Scrimmage.reward.trackRewardableOnce( 'unique-user-id', 'Data Type Name', 'unique-event-id', { 'custom-property': 'custom-value', 'custom-property-2': { 'custom-property-2-1': 'custom-value-2-1', }, }, );
-
Get user token
const token = await Scrimmage.user.getUserToken('unique-user-id');
or
const token = await Scrimmage.user.getUserToken('unique-user-id', { tags: ['tag1', 'tag2'], properties: { 'custom-property': 'custom-value', 'custom-property-2': 12345, }, });
Use this token to identify the user on the frontend. Make sure to deliver the token to the frontend securely.
If you want to use multiple connections, you need to create a new instance of the library.
const rewarderForProduction = Scrimmage.createRewarder({
apiServer: '<your api server endpoint 1>',
privateKey: '<your private key 1>',
namespace: '<environment 1, e.g. staging or production>',
});
const rewarderForStaging = Scrimmage.createRewarder({
apiServer: '<your api server endpoint 2>',
privateKey: '<your private key 2>',
namespace: '<environment 2, e.g. staging or production>',
});
Then you can use the two instances simultaneously.
await rewarderForProduction.reward.trackRewardable(
'unique-user-id',
'Data Type Name',
{
'custom-property': 'custom-value',
'custom-property-2': {
'custom-property-2-1': 'custom-value-2-1',
},
},
);
await rewarderForStaging.reward.trackRewardable(
'unique-user-id',
'Data Type Name',
{
'custom-property': 'custom-value',
'custom-property-2': {
'custom-property-2-1': 'custom-value-2-1',
},
},
);
- Using
<iframe />
: github.com/Scrimmage-co/scrimmage-rewards-iframe - Using Android: github.com/Scrimmage-co/scrimmage-rewards-android
- Using iOS: github.com/Scrimmage-co/scrimmage-rewards-ios
- Using Flutter: github.com/Scrimmage-co/scrimmage-rewards-flutter