The Tally endpoints are wrapped by a simple API, which allows you to count any event and retrieve that count. You can also store metadata against the count.
const getTally = require('@qubit/http-api-tally')
const tally = getTally('opType', 'trackingId', 'counter', period)
tally.increment('ABC1234').then(() => {
console.log('Purchases of ABC1234 increased!')
})
Where:
opType
is the opType to use, e.g. ecount
trackingId
is the tracking Id for the property, e.g. demo_property_uk
counter
is the type of interaction we want to count, e.g. purchases
period
is the time window, in minutes, over which results will be aggregated, e.g. 1440. Range is between one minute and 43200 minutes (30 days)DANGER: The parameters opType
, trackingId
, counter
, period
cannot contain forward or back slashes /
\
. Use underscores instead.
tally.increment('item1')
OR
tally.increment('item3', {
metadata: JSON.stringify({
description: '...'
})
})
INFO: All metadata should be stored in the format above, with values stringified and stored against a metadata property in an object.
// Get the top 3 items of the counterName list
tally.get(3).then((data) => {
// data is a list of the top 3 items, e.g. (item1, item2, item3)
console.log(data)
})
WARNING: We limit the response to return only the top 1000 items.
// Get the tally package
const getTally = require('@qubit/http-api-tally')
// Define the variables of the tally endpoint
const strategy = 'opType'
const trackingId = options.meta.trackingId // your Qubit trackingId
const counterName = 't001-most-viewed'
const period = 48 // social proof period time in hours
const tally = getTally(strategy, trackingId, counterName, 60 * period)
// Increment the endpoint for different item Ids
tally.increment('item1')
tally.increment('item2')
tally.increment('item3')
// Get the top 3 items of the counterName list
tally.get(3).then((data) => {
// data is a list of the top 3 items, e.g. (item1, item2, item3)
console.log(data)
})
[
{ key: 'item2', count: 5, data: { description: '...' } }
{ key: 'item1', count: 4 }
{ key: 'item3', count: 1, data: { description: '...' } }
]