@mntm/stats
Version:
A package for integrating analytics tools
49 lines (48 loc) • 1.36 kB
JavaScript
import { safeWindow } from '../dom.js';
import { loadScript, thenable } from '../utils.js';
/**
* Implement VK Pixel
*
* @param code VK-RTRG-XXXXXXX-YYYYY
*/
export const createPixelVK = (code) => {
/* eslint-disable new-cap */
const context = safeWindow;
const load = loadScript('https://vk.com/js/api/openapi.js?169');
const ready = load.then(() => {
if (context.VK) {
context.VK.Retargeting.Init(code);
}
else {
throw new Error('net::ERR_BLOCKED_BY_CLIENT');
}
});
const pixel = {
hit() {
return thenable(ready, () => {
context.VK.Retargeting.Hit();
});
},
event(event) {
return thenable(ready, () => {
context.VK.Retargeting.Event(event);
});
},
product(id, event, params) {
return thenable(ready, () => {
context.VK.Retargeting.ProductEvent(id, event, params || {});
});
},
audience(id) {
return thenable(ready, () => {
context.VK.Retargeting.Add(id);
});
},
goal(goal, value) {
return thenable(ready, () => {
context.VK.Goal(goal, { value: value || 0 });
});
}
};
return pixel;
};