UNPKG

@spencerwhyte/gatsby-plugin-gdpr-cookies

Version:

Gatsby plugin to add google analytics, google tag manager facebook pixel, tik tok pixel and hotjar in a gdpr form to your site. Consent coming soon.

51 lines (49 loc) 2.2 kB
var _require = require('../helper'), validTikTokPixelId = _require.validTikTokPixelId, getCookie = _require.getCookie; exports.addTikTokPixel = function () { return new Promise(function (resolve, reject) { if (window.gatsbyPluginGDPRCookiesTikTokPixelAdded) return resolve(true); /* eslint-disable */ !function (w, d, t) { w.TiktokAnalyticsObject = t; var ttq = w[t] = w[t] || []; ttq.methods = ["page", "track", "identify", "instances", "debug", "on", "off", "once", "ready", "alias", "group", "enableCookie", "disableCookie"], ttq.setAndDefer = function (t, e) { t[e] = function () { t.push([e].concat(Array.prototype.slice.call(arguments, 0))); }; }; for (var i = 0; i < ttq.methods.length; i++) { ttq.setAndDefer(ttq, ttq.methods[i]); } ttq.instance = function (t) { for (var e = ttq._i[t] || [], n = 0; n < ttq.methods.length; n++) { ttq.setAndDefer(e, ttq.methods[n]); } return e; }, ttq.load = function (e, n) { var i = "https://analytics.tiktok.com/i18n/pixel/events.js"; ttq._i = ttq._i || {}, ttq._i[e] = [], ttq._i[e]._u = i, ttq._t = ttq._t || {}, ttq._t[e] = +new Date(), ttq._o = ttq._o || {}, ttq._o[e] = n || {}; n = document.createElement("script"); n.type = "text/javascript", n.async = !0, n.src = i + "?sdkid=" + e + "&lib=" + t; e = document.getElementsByTagName("script")[0]; e.parentNode.insertBefore(n, e); }; }(window, document, 'ttq'); /* eslint-enable */ window.gatsbyPluginGDPRCookiesTikTokPixelAdded = true; resolve(true); }); }; exports.initializeTikTokPixel = function (options) { if (!window.gatsbyPluginGDPRCookiesTikTokPixelInitialized && getCookie(options.cookieName) === "true" && validTikTokPixelId(options)) { window.ttq.load(options.pixelId); window.gatsbyPluginGDPRCookiesTikTokPixelInitialized = true; } }; exports.trackTikTokPixel = function (options) { if (getCookie(options.cookieName) === "true" && validTikTokPixelId(options) && typeof window.fbq === "function") { window.fbq("track", "PageView"); window.ttq.page(); } };