@ht-sdks/events-sdk-js-browser 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +77 -17
  2. package/dist/cjs/core/session/index.js +2 -1
  3. package/dist/cjs/core/session/index.js.map +1 -1
  4. package/dist/cjs/generated/version.js +1 -1
  5. package/dist/cjs/plugins/destinations/google-tag-manager.js +8 -21
  6. package/dist/cjs/plugins/destinations/google-tag-manager.js.map +1 -1
  7. package/dist/cjs/plugins/destinations/gtag.js +44 -0
  8. package/dist/cjs/plugins/destinations/gtag.js.map +1 -0
  9. package/dist/cjs/plugins/destinations/index.js +4 -0
  10. package/dist/cjs/plugins/destinations/index.js.map +1 -1
  11. package/dist/pkg/core/session/index.js +2 -1
  12. package/dist/pkg/core/session/index.js.map +1 -1
  13. package/dist/pkg/generated/version.js +1 -1
  14. package/dist/pkg/plugins/destinations/google-tag-manager.js +8 -21
  15. package/dist/pkg/plugins/destinations/google-tag-manager.js.map +1 -1
  16. package/dist/pkg/plugins/destinations/gtag.js +42 -0
  17. package/dist/pkg/plugins/destinations/gtag.js.map +1 -0
  18. package/dist/pkg/plugins/destinations/index.js +4 -0
  19. package/dist/pkg/plugins/destinations/index.js.map +1 -1
  20. package/dist/types/core/buffer/index.d.ts +1 -1
  21. package/dist/types/core/session/index.d.ts.map +1 -1
  22. package/dist/types/generated/version.d.ts +1 -1
  23. package/dist/types/plugins/destinations/google-tag-manager.d.ts +1 -5
  24. package/dist/types/plugins/destinations/google-tag-manager.d.ts.map +1 -1
  25. package/dist/types/plugins/destinations/gtag.d.ts +27 -0
  26. package/dist/types/plugins/destinations/gtag.d.ts.map +1 -0
  27. package/dist/types/plugins/destinations/index.d.ts.map +1 -1
  28. package/dist/umd/events.min.js +1 -1
  29. package/dist/umd/events.min.js.map +1 -1
  30. package/dist/umd/google-tag-manager.bundle.238ad1d40bdf04d984ef.js +2 -0
  31. package/dist/umd/google-tag-manager.bundle.238ad1d40bdf04d984ef.js.map +1 -0
  32. package/dist/umd/gtag.bundle.a5e7c472f1c04f2b9ebd.js +2 -0
  33. package/dist/umd/gtag.bundle.a5e7c472f1c04f2b9ebd.js.map +1 -0
  34. package/dist/umd/index.js +1 -1
  35. package/dist/umd/index.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/core/http-cookies/server-examples/node-aws-lambda.md +1 -1
  38. package/src/core/session/index.ts +2 -1
  39. package/src/generated/version.ts +1 -1
  40. package/src/plugins/destinations/google-tag-manager.ts +15 -36
  41. package/src/plugins/destinations/gtag.ts +93 -0
  42. package/src/plugins/destinations/index.ts +4 -0
  43. package/dist/umd/google-tag-manager.bundle.c27daab560c3298c04ca.js +0 -2
  44. package/dist/umd/google-tag-manager.bundle.c27daab560c3298c04ca.js.map +0 -1
package/README.md CHANGED
@@ -217,42 +217,101 @@ htevents.register(lowercase)
217
217
 
218
218
  For further examples check out our [existing plugins](/packages/browser/src/plugins).
219
219
 
220
+ ## Source Middleware
221
+
222
+ Source middleware allows for defining a function to manipulate the event payload and filter events on a per source basis. It's a specialized `before` [`Plugin`](#plugins) that makes it easy to do things like enriching the event `context` with custom fields.
223
+
224
+ ```ts
225
+ htevents.addSourceMiddleware(({ payload, next }) => {
226
+ const event = payload.obj;
227
+ event.context = {
228
+ ...event.context,
229
+ customField: "123",
230
+ };
231
+ next(payload);
232
+ });
233
+ ```
234
+
220
235
  # Client-side destinations
221
236
 
222
237
  The Browser SDK supports sending events directly from the client to destinations which is useful in situations where the destination requires a client-side context in order to fully enrich and attribute events.
223
238
 
224
- ## Google Analytics 4
239
+ ## Google Tag Manager
225
240
 
226
- Google Analytics 4 (GA4) offers tracking via Google Tag Manager (GTM) which may benefit from a client-side integration.
241
+ The Google Tag Manager integration pushes events directly to [Google Tag Manager](https://support.google.com/tagmanager/answer/6102821?hl=en). This tag in turn can forward to a variety of other tools.
227
242
 
228
243
  ### Installation
229
244
 
230
- Make sure your GA4 setup scripts are configured on your website. Our implementation expects the `gtag` function to be available in the global scope.
245
+ Make sure your Google Tag Manager setup scripts are configured on your website. Our implementation expects `window.dataLayer` to be available in the global scope.
231
246
 
232
247
  ```html
233
- <!-- example GA4 setup using Google Tag Manager -->
234
- <script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXX"></script>
248
+ <!-- example Google Tag Manager script -->
249
+ <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
250
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
251
+ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
252
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
253
+ })(window,document,'script','dataLayer','GTM-XXXXXXXX');</script>
254
+ ```
255
+
256
+ You can then configure the Browser SDK to send events directly to Google Tag Manager by enabling the `Google Tag Manager` destination:
257
+
258
+ ```js
259
+ htevents.load('WRITE_KEY', {
260
+ destinations: {
261
+ 'Google Tag Manager': {},
262
+ },
263
+ })
264
+ ```
265
+
266
+ View the complete plugin documentation in [`google-tag-manager.ts`](src/plugins/destinations/google-tag-manager.ts#L12)
267
+
268
+ ### Usage
269
+
270
+ Once the destination is configured, all applicable `identify`, `track`, and `page` events will be sent. The integration also automatically populates the `userId` and `hightouchAnonymousId` fields.
271
+
272
+ ```js
273
+ htevents.track('My Event', { prop: 'abc' })
274
+ // This results in the following Google Tag Manager event.
275
+ // window.dataLayer.push({ event: 'My Event', prop: 'abc', user_id: '123', hightouch_anonymous_id: '456' })
276
+ ```
277
+
278
+ ## gtag.js
279
+
280
+ The Google Tag (gtag.js) integration pushes events directly to [gtag.js](https://developers.google.com/tag-platform/gtagjs). This tag in turn can forward to a variety of Google products, including Google Ads, Google Analytics, Campaign Manager, Display & Video 360, and Search Ads 360.
281
+
282
+ ### Installation
283
+
284
+ Make sure your gtag.js setup scripts are configured on your website. Our implementation expects the `gtag` function to be available in the global scope.
285
+
286
+ ```html
287
+ <!-- example GA4 setup using gtag.js -->
288
+ <script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXX" ></script>
235
289
  <script>
236
- window.dataLayer = window.dataLayer || [];
237
- function gtag() { dataLayer.push(arguments); }
238
- gtag('js', new Date());
239
- gtag('config', 'G-XXXXXXXX');
290
+ window.dataLayer = window.dataLayer || []
291
+ function gtag() {
292
+ dataLayer.push(arguments)
293
+ }
294
+ gtag('js', new Date())
295
+ gtag('config', 'G-XXXXXXXX')
240
296
  </script>
241
297
  ```
242
298
 
243
- You can then configure the Browser SDK to send events directly to GA4 by enabling the `Google Tag Manager` destination:
299
+ You can then configure the Browser SDK to send events directly to gtag.js by enabling the `gtag` destination:
244
300
 
245
301
  ```js
246
- htevents.load("WRITE_KEY", {
302
+ htevents.load('WRITE_KEY', {
247
303
  destinations: {
248
- "Google Tag Manager": {
249
- measurementId: "G-XXXXXXXX"
250
- }
251
- }
304
+ gtag: {
305
+ // Events are only forwarded to the configured measurement IDs.
306
+ // For example, if you'd like to forward to GA4, you should include
307
+ // your GA4 measurement ID here.
308
+ measurementId: 'G-XXXXXXXX',
309
+ },
310
+ },
252
311
  })
253
312
  ```
254
313
 
255
- View the complete plugin documentation in [`google-tag-manager.ts`](src/plugins/destinations/google-tag-manager.ts#L11)
314
+ View the complete plugin documentation in [`gtag.ts`](src/plugins/destinations/gtag.ts#L11)
256
315
 
257
316
  ### Usage
258
317
 
@@ -260,7 +319,8 @@ Once the destination is configured, all applicable `identify`, `track`, and `pag
260
319
 
261
320
  ```js
262
321
  htevents.track('My Event', { prop: 'abc' })
263
- // gtag('event', 'My Event', { prop: 'abc', user_id: '123' })
322
+ // This results in the following gtag call.
323
+ // gtag('event', 'My Event', { prop: 'abc', user_id: '123', hightouchAnonymousId: '456' })
264
324
  ```
265
325
 
266
326
  ## Custom client-side destinations
@@ -63,7 +63,8 @@ exports.generateManualTrackingSession = generateManualTrackingSession;
63
63
  var updateSessionExpiration = function (session) {
64
64
  session.sessionStart = false;
65
65
  if (session.autoTrack) {
66
- session.expiresAt = session.expiresAt + session.timeout;
66
+ // extend session by `timeout`
67
+ session.expiresAt = Date.now() + session.timeout;
67
68
  }
68
69
  return session;
69
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/session/index.ts"],"names":[],"mappings":";AAAA,0HAA0H;AAC1H,cAAc;;;AAoCd;;;GAGG;AACI,IAAM,iBAAiB,GAAG,UAAC,SAAiB;IACjD,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,OAAO,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAA;AACvC,CAAC,CAAA;AAHY,QAAA,iBAAiB,qBAG7B;AAED,IAAM,iBAAiB,GAAG,cAAc,OAAA,IAAI,CAAC,GAAG,EAAE,EAAV,CAAU,CAAA;AAE3C,IAAM,sBAAsB,GAAG,UAAC,SAAkB;IACvD,IACE,CAAC,SAAS;QACV,SAAS,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QACpC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAChC;QACA,OAAO,KAAK,CAAA;KACb;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AATY,QAAA,sBAAsB,0BASlC;AAED,IAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AACtD,IAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AAE/D;;;;GAIG;AACI,IAAM,2BAA2B,GAAG,UACzC,cAAuB;IAEvB,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,IAAM,OAAO,GAAW,cAAc,IAAI,0BAA0B,CAAA;IACpE,IAAI,OAAO,GAAG,sBAAsB,EAAE;QACpC,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;KAC7E;IACD,OAAO;QACL,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,SAAS,GAAG,OAAO;QAC9B,OAAO,SAAA;QACP,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;KAChB,CAAA;AACH,CAAC,CAAA;AAfY,QAAA,2BAA2B,+BAevC;AAED;;;;GAIG;AACI,IAAM,6BAA6B,GAAG,UAAC,EAAW;IACvD,IAAM,SAAS,GAAW,IAAA,8BAAsB,EAAC,EAAE,CAAC;QAClD,CAAC,CAAE,EAAa;QAChB,CAAC,CAAC,iBAAiB,EAAE,CAAA;IACvB,OAAO;QACL,EAAE,EAAE,SAAS;QACb,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI;KAClB,CAAA;AACH,CAAC,CAAA;AATY,QAAA,6BAA6B,iCASzC;AAEM,IAAM,uBAAuB,GAAG,UAAC,OAAoB;IAC1D,OAAO,CAAC,YAAY,GAAG,KAAK,CAAA;IAC5B,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAU,GAAG,OAAO,CAAC,OAAQ,CAAA;KAC1D;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AANY,QAAA,uBAAuB,2BAMnC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/session/index.ts"],"names":[],"mappings":";AAAA,0HAA0H;AAC1H,cAAc;;;AAoCd;;;GAGG;AACI,IAAM,iBAAiB,GAAG,UAAC,SAAiB;IACjD,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,OAAO,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAA;AACvC,CAAC,CAAA;AAHY,QAAA,iBAAiB,qBAG7B;AAED,IAAM,iBAAiB,GAAG,cAAc,OAAA,IAAI,CAAC,GAAG,EAAE,EAAV,CAAU,CAAA;AAE3C,IAAM,sBAAsB,GAAG,UAAC,SAAkB;IACvD,IACE,CAAC,SAAS;QACV,SAAS,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QACpC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAChC;QACA,OAAO,KAAK,CAAA;KACb;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AATY,QAAA,sBAAsB,0BASlC;AAED,IAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AACtD,IAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AAE/D;;;;GAIG;AACI,IAAM,2BAA2B,GAAG,UACzC,cAAuB;IAEvB,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,IAAM,OAAO,GAAW,cAAc,IAAI,0BAA0B,CAAA;IACpE,IAAI,OAAO,GAAG,sBAAsB,EAAE;QACpC,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;KAC7E;IACD,OAAO;QACL,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,SAAS,GAAG,OAAO;QAC9B,OAAO,SAAA;QACP,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;KAChB,CAAA;AACH,CAAC,CAAA;AAfY,QAAA,2BAA2B,+BAevC;AAED;;;;GAIG;AACI,IAAM,6BAA6B,GAAG,UAAC,EAAW;IACvD,IAAM,SAAS,GAAW,IAAA,8BAAsB,EAAC,EAAE,CAAC;QAClD,CAAC,CAAE,EAAa;QAChB,CAAC,CAAC,iBAAiB,EAAE,CAAA;IACvB,OAAO;QACL,EAAE,EAAE,SAAS;QACb,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI;KAClB,CAAA;AACH,CAAC,CAAA;AATY,QAAA,6BAA6B,iCASzC;AAEM,IAAM,uBAAuB,GAAG,UAAC,OAAoB;IAC1D,OAAO,CAAC,YAAY,GAAG,KAAK,CAAA;IAC5B,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,8BAA8B;QAC9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAQ,CAAA;KAClD;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAPY,QAAA,uBAAuB,2BAOnC"}
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
4
  // This file is generated.
5
- exports.version = '1.3.0';
5
+ exports.version = '1.3.2';
6
6
  //# sourceMappingURL=version.js.map
@@ -6,28 +6,15 @@ var destination_1 = require("./destination");
6
6
  * https://github.com/segmentio/analytics.js-integrations/blob/master/integrations/google-tag-manager/lib/index.js
7
7
  */
8
8
  var googleTagManager = function (_a) {
9
- var _b = _a.measurementId, measurementId = _b === void 0 ? [] : _b, _c = _a.trackAllPages, trackAllPages = _c === void 0 ? false : _c, _d = _a.trackNamedPages, trackNamedPages = _d === void 0 ? true : _d, _e = _a.trackCategorizedPages, trackCategorizedPages = _e === void 0 ? true : _e;
10
- var measurementIds = (Array.isArray(measurementId) ? measurementId : [measurementId]).filter(Boolean);
11
- var baseEvent = function (_a) {
12
- var event = _a.event;
13
- return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, (event.userId && {
14
- user_id: event.userId,
9
+ var _b = _a.trackAllPages, trackAllPages = _b === void 0 ? false : _b, _c = _a.trackNamedPages, trackNamedPages = _c === void 0 ? true : _c, _d = _a.trackCategorizedPages, trackCategorizedPages = _d === void 0 ? true : _d;
10
+ var pushEvent = function (event) {
11
+ window.dataLayer.push(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, (event.userId && {
12
+ userId: event.userId,
15
13
  })), (event.anonymousId && {
16
- hightouch_anonymous_id: event.anonymousId,
17
- })), (measurementIds.length > 0 && {
18
- send_to: measurementIds,
19
- })), event.properties);
14
+ hightouchAnonymousId: event.anonymousId,
15
+ })), { event: event.event }), event.properties));
20
16
  };
21
17
  return new destination_1.Destination('Google Tag Manager', '0.0.1', {
22
- identify: function (ctx) {
23
- if (ctx.event.userId) {
24
- measurementIds.forEach(function (measurementId) {
25
- window.gtag('config', measurementId, {
26
- user_id: ctx.event.userId,
27
- });
28
- });
29
- }
30
- },
31
18
  page: function (ctx) {
32
19
  if (trackAllPages ||
33
20
  (trackNamedPages && ctx.event.name) ||
@@ -35,11 +22,11 @@ var googleTagManager = function (_a) {
35
22
  var eventName = ['Viewed', ctx.event.category, ctx.event.name, 'Page']
36
23
  .filter(Boolean)
37
24
  .join(' ');
38
- window.gtag('event', eventName, tslib_1.__assign({}, baseEvent(ctx)));
25
+ pushEvent(tslib_1.__assign(tslib_1.__assign({}, ctx.event), { type: 'track', event: eventName }));
39
26
  }
40
27
  },
41
28
  track: function (ctx) {
42
- window.gtag('event', ctx.event.event, tslib_1.__assign({}, baseEvent(ctx)));
29
+ pushEvent(ctx.event);
43
30
  },
44
31
  });
45
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"google-tag-manager.js","sourceRoot":"","sources":["../../../../src/plugins/destinations/google-tag-manager.ts"],"names":[],"mappings":";;;AAEA,6CAA2C;AA8B3C;;GAEG;AACH,IAAM,gBAAgB,GAAiD,UAAC,EAKvE;QAJC,qBAAkB,EAAlB,aAAa,mBAAG,EAAE,KAAA,EAClB,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA,EACrB,uBAAsB,EAAtB,eAAe,mBAAG,IAAI,KAAA,EACtB,6BAA4B,EAA5B,qBAAqB,mBAAG,IAAI,KAAA;IAE5B,IAAM,cAAc,GAAG,CACrB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAC/D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEjB,IAAM,SAAS,GAAG,UAAC,EAAkB;YAAhB,KAAK,WAAA;QACxB,+EACK,CAAC,KAAK,CAAC,MAAM,IAAI;YAClB,OAAO,EAAE,KAAK,CAAC,MAAM;SACtB,CAAC,GACC,CAAC,KAAK,CAAC,WAAW,IAAI;YACvB,sBAAsB,EAAE,KAAK,CAAC,WAAW;SAC1C,CAAC,GACC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI;YAC/B,OAAO,EAAE,cAAc;SACxB,CAAC,GACC,KAAK,CAAC,UAAU,EACpB;IACH,CAAC,CAAA;IAED,OAAO,IAAI,yBAAW,CAAC,oBAAoB,EAAE,OAAO,EAAE;QACpD,QAAQ,EAAE,UAAC,GAAG;YACZ,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;gBACpB,cAAc,CAAC,OAAO,CAAC,UAAC,aAAa;oBACnC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;wBACnC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;qBAC1B,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;aACH;QACH,CAAC;QAED,IAAI,EAAE,UAAC,GAAG;YACR,IACE,aAAa;gBACb,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnC,CAAC,qBAAqB,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC7C;gBACA,IAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;qBACrE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,uBACzB,SAAS,CAAC,GAAG,CAAC,EACjB,CAAA;aACH;QACH,CAAC;QAED,KAAK,EAAE,UAAC,GAAG;YACT,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,uBAC/B,SAAS,CAAC,GAAG,CAAC,EACjB,CAAA;QACJ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,kBAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"google-tag-manager.js","sourceRoot":"","sources":["../../../../src/plugins/destinations/google-tag-manager.ts"],"names":[],"mappings":";;;AAGA,6CAA2C;AAyB3C;;GAEG;AACH,IAAM,gBAAgB,GAAiD,UAAC,EAIvE;QAHC,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA,EACrB,uBAAsB,EAAtB,eAAe,mBAAG,IAAI,KAAA,EACtB,6BAA4B,EAA5B,qBAAqB,mBAAG,IAAI,KAAA;IAE5B,IAAM,SAAS,GAAG,UAAC,KAAqB;QACtC,MAAM,CAAC,SAAS,CAAC,IAAI,yEAChB,CAAC,KAAK,CAAC,MAAM,IAAI;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,GACC,CAAC,KAAK,CAAC,WAAW,IAAI;YACvB,oBAAoB,EAAE,KAAK,CAAC,WAAW;SACxC,CAAC,KACF,KAAK,EAAE,KAAK,CAAC,KAAK,KACf,KAAK,CAAC,UAAU,EACnB,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,IAAI,yBAAW,CAAC,oBAAoB,EAAE,OAAO,EAAE;QACpD,IAAI,EAAE,UAAC,GAAY;YACjB,IACE,aAAa;gBACb,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnC,CAAC,qBAAqB,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC7C;gBACA,IAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;qBACrE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,GAAG,CAAC,CAAA;gBAEZ,SAAS,uCACJ,GAAG,CAAC,KAAK,KACZ,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,SAAS,IAChB,CAAA;aACH;QACH,CAAC;QAED,KAAK,EAAE,UAAC,GAAY;YAClB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,kBAAe,gBAAgB,CAAA"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var destination_1 = require("./destination");
5
+ var gtag = function (_a) {
6
+ var _b = _a.measurementId, measurementId = _b === void 0 ? [] : _b, _c = _a.trackAllPages, trackAllPages = _c === void 0 ? false : _c, _d = _a.trackNamedPages, trackNamedPages = _d === void 0 ? true : _d, _e = _a.trackCategorizedPages, trackCategorizedPages = _e === void 0 ? true : _e;
7
+ var measurementIds = (Array.isArray(measurementId) ? measurementId : [measurementId]).filter(Boolean);
8
+ var baseEvent = function (_a) {
9
+ var event = _a.event;
10
+ return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, (event.userId && {
11
+ user_id: event.userId,
12
+ })), (event.anonymousId && {
13
+ hightouch_anonymous_id: event.anonymousId,
14
+ })), (measurementIds.length > 0 && {
15
+ send_to: measurementIds,
16
+ })), event.properties);
17
+ };
18
+ return new destination_1.Destination('gtag', '0.0.1', {
19
+ identify: function (ctx) {
20
+ if (ctx.event.userId) {
21
+ measurementIds.forEach(function (measurementId) {
22
+ window.gtag('config', measurementId, {
23
+ user_id: ctx.event.userId,
24
+ });
25
+ });
26
+ }
27
+ },
28
+ page: function (ctx) {
29
+ if (trackAllPages ||
30
+ (trackNamedPages && ctx.event.name) ||
31
+ (trackCategorizedPages && ctx.event.category)) {
32
+ var eventName = ['Viewed', ctx.event.category, ctx.event.name, 'Page']
33
+ .filter(Boolean)
34
+ .join(' ');
35
+ window.gtag('event', eventName, tslib_1.__assign({}, baseEvent(ctx)));
36
+ }
37
+ },
38
+ track: function (ctx) {
39
+ window.gtag('event', ctx.event.event, tslib_1.__assign({}, baseEvent(ctx)));
40
+ },
41
+ });
42
+ };
43
+ exports.default = gtag;
44
+ //# sourceMappingURL=gtag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtag.js","sourceRoot":"","sources":["../../../../src/plugins/destinations/gtag.ts"],"names":[],"mappings":";;;AAEA,6CAA2C;AA8B3C,IAAM,IAAI,GAAqC,UAAC,EAK/C;QAJC,qBAAkB,EAAlB,aAAa,mBAAG,EAAE,KAAA,EAClB,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA,EACrB,uBAAsB,EAAtB,eAAe,mBAAG,IAAI,KAAA,EACtB,6BAA4B,EAA5B,qBAAqB,mBAAG,IAAI,KAAA;IAE5B,IAAM,cAAc,GAAG,CACrB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAC/D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEjB,IAAM,SAAS,GAAG,UAAC,EAAkB;YAAhB,KAAK,WAAA;QACxB,+EACK,CAAC,KAAK,CAAC,MAAM,IAAI;YAClB,OAAO,EAAE,KAAK,CAAC,MAAM;SACtB,CAAC,GACC,CAAC,KAAK,CAAC,WAAW,IAAI;YACvB,sBAAsB,EAAE,KAAK,CAAC,WAAW;SAC1C,CAAC,GACC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI;YAC/B,OAAO,EAAE,cAAc;SACxB,CAAC,GACC,KAAK,CAAC,UAAU,EACpB;IACH,CAAC,CAAA;IAED,OAAO,IAAI,yBAAW,CAAC,MAAM,EAAE,OAAO,EAAE;QACtC,QAAQ,EAAE,UAAC,GAAG;YACZ,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;gBACpB,cAAc,CAAC,OAAO,CAAC,UAAC,aAAa;oBACnC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;wBACnC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;qBAC1B,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;aACH;QACH,CAAC;QAED,IAAI,EAAE,UAAC,GAAG;YACR,IACE,aAAa;gBACb,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnC,CAAC,qBAAqB,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC7C;gBACA,IAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;qBACrE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,uBACzB,SAAS,CAAC,GAAG,CAAC,EACjB,CAAA;aACH;QACH,CAAC;QAED,KAAK,EAAE,UAAC,GAAG;YACT,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,uBAC/B,SAAS,CAAC,GAAG,CAAC,EACjB,CAAA;QACJ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,kBAAe,IAAI,CAAA"}
@@ -8,6 +8,10 @@ function createDestination(name, settings) {
8
8
  return tslib_1.__awaiter(this, void 0, void 0, function () {
9
9
  return tslib_1.__generator(this, function (_a) {
10
10
  switch (name) {
11
+ case 'gtag':
12
+ return [2 /*return*/, Promise.resolve().then(function () { return tslib_1.__importStar(require(/* webpackChunkName: "gtag" */ './gtag')); }).then(function (mod) {
13
+ return mod.default(settings);
14
+ })];
11
15
  case 'Google Tag Manager':
12
16
  return [2 /*return*/, Promise.resolve().then(function () { return tslib_1.__importStar(require(
13
17
  /* webpackChunkName: "google-tag-manager" */ './google-tag-manager')); }).then(function (mod) { return mod.default(settings); })];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/destinations/index.ts"],"names":[],"mappings":";;;;AACA,6CAA2C;AAElC,4FAFA,yBAAW,OAEA;AAGpB,SAAsB,iBAAiB,CACrC,IAAY,EACZ,QAA6B;;;YAE7B,QAAQ,IAAI,EAAE;gBACZ,KAAK,oBAAoB;oBACvB,sBAAO;wBACL,4CAA4C,CAAC,sBAAsB,OACnE,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,OAAO,CAAC,QAAe,CAAC,EAA5B,CAA4B,CAAC,EAAA;gBAC/C;oBACE,sBAAO,SAAS,EAAA;aACnB;;;;CACF;AAZD,8CAYC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/destinations/index.ts"],"names":[],"mappings":";;;;AACA,6CAA2C;AAElC,4FAFA,yBAAW,OAEA;AAGpB,SAAsB,iBAAiB,CACrC,IAAY,EACZ,QAA6B;;;YAE7B,QAAQ,IAAI,EAAE;gBACZ,KAAK,MAAM;oBACT,sBAAO,yEAAO,8BAA8B,CAAC,QAAQ,OAAE,IAAI,CAAC,UAAC,GAAG;4BAC9D,OAAA,GAAG,CAAC,OAAO,CAAC,QAAe,CAAC;wBAA5B,CAA4B,CAC7B,EAAA;gBACH,KAAK,oBAAoB;oBACvB,sBAAO;wBACL,4CAA4C,CAAC,sBAAsB,OACnE,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,OAAO,CAAC,QAAe,CAAC,EAA5B,CAA4B,CAAC,EAAA;gBAC/C;oBACE,sBAAO,SAAS,EAAA;aACnB;;;;CACF;AAhBD,8CAgBC"}
@@ -56,7 +56,8 @@ export var generateManualTrackingSession = function (id) {
56
56
  export var updateSessionExpiration = function (session) {
57
57
  session.sessionStart = false;
58
58
  if (session.autoTrack) {
59
- session.expiresAt = session.expiresAt + session.timeout;
59
+ // extend session by `timeout`
60
+ session.expiresAt = Date.now() + session.timeout;
60
61
  }
61
62
  return session;
62
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/session/index.ts"],"names":[],"mappings":"AAAA,0HAA0H;AAC1H,cAAc;AAoCd;;;GAGG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,SAAiB;IACjD,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,OAAO,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAA;AACvC,CAAC,CAAA;AAED,IAAM,iBAAiB,GAAG,cAAc,OAAA,IAAI,CAAC,GAAG,EAAE,EAAV,CAAU,CAAA;AAElD,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAAC,SAAkB;IACvD,IACE,CAAC,SAAS;QACV,SAAS,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QACpC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAChC;QACA,OAAO,KAAK,CAAA;KACb;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,IAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AACtD,IAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AAE/D;;;;GAIG;AACH,MAAM,CAAC,IAAM,2BAA2B,GAAG,UACzC,cAAuB;IAEvB,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,IAAM,OAAO,GAAW,cAAc,IAAI,0BAA0B,CAAA;IACpE,IAAI,OAAO,GAAG,sBAAsB,EAAE;QACpC,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;KAC7E;IACD,OAAO;QACL,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,SAAS,GAAG,OAAO;QAC9B,OAAO,SAAA;QACP,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;KAChB,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,IAAM,6BAA6B,GAAG,UAAC,EAAW;IACvD,IAAM,SAAS,GAAW,sBAAsB,CAAC,EAAE,CAAC;QAClD,CAAC,CAAE,EAAa;QAChB,CAAC,CAAC,iBAAiB,EAAE,CAAA;IACvB,OAAO;QACL,EAAE,EAAE,SAAS;QACb,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI;KAClB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,uBAAuB,GAAG,UAAC,OAAoB;IAC1D,OAAO,CAAC,YAAY,GAAG,KAAK,CAAA;IAC5B,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAU,GAAG,OAAO,CAAC,OAAQ,CAAA;KAC1D;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/session/index.ts"],"names":[],"mappings":"AAAA,0HAA0H;AAC1H,cAAc;AAoCd;;;GAGG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,SAAiB;IACjD,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,OAAO,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAA;AACvC,CAAC,CAAA;AAED,IAAM,iBAAiB,GAAG,cAAc,OAAA,IAAI,CAAC,GAAG,EAAE,EAAV,CAAU,CAAA;AAElD,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAAC,SAAkB;IACvD,IACE,CAAC,SAAS;QACV,SAAS,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QACpC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAChC;QACA,OAAO,KAAK,CAAA;KACb;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,IAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AACtD,IAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AAE/D;;;;GAIG;AACH,MAAM,CAAC,IAAM,2BAA2B,GAAG,UACzC,cAAuB;IAEvB,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,IAAM,OAAO,GAAW,cAAc,IAAI,0BAA0B,CAAA;IACpE,IAAI,OAAO,GAAG,sBAAsB,EAAE;QACpC,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;KAC7E;IACD,OAAO;QACL,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,SAAS,GAAG,OAAO;QAC9B,OAAO,SAAA;QACP,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;KAChB,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,IAAM,6BAA6B,GAAG,UAAC,EAAW;IACvD,IAAM,SAAS,GAAW,sBAAsB,CAAC,EAAE,CAAC;QAClD,CAAC,CAAE,EAAa;QAChB,CAAC,CAAC,iBAAiB,EAAE,CAAA;IACvB,OAAO;QACL,EAAE,EAAE,SAAS;QACb,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI;KAClB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,uBAAuB,GAAG,UAAC,OAAoB;IAC1D,OAAO,CAAC,YAAY,GAAG,KAAK,CAAA;IAC5B,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,8BAA8B;QAC9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAQ,CAAA;KAClD;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -1,3 +1,3 @@
1
1
  // This file is generated.
2
- export var version = '1.3.0';
2
+ export var version = '1.3.2';
3
3
  //# sourceMappingURL=version.js.map
@@ -4,28 +4,15 @@ import { Destination } from './destination';
4
4
  * https://github.com/segmentio/analytics.js-integrations/blob/master/integrations/google-tag-manager/lib/index.js
5
5
  */
6
6
  var googleTagManager = function (_a) {
7
- var _b = _a.measurementId, measurementId = _b === void 0 ? [] : _b, _c = _a.trackAllPages, trackAllPages = _c === void 0 ? false : _c, _d = _a.trackNamedPages, trackNamedPages = _d === void 0 ? true : _d, _e = _a.trackCategorizedPages, trackCategorizedPages = _e === void 0 ? true : _e;
8
- var measurementIds = (Array.isArray(measurementId) ? measurementId : [measurementId]).filter(Boolean);
9
- var baseEvent = function (_a) {
10
- var event = _a.event;
11
- return __assign(__assign(__assign(__assign({}, (event.userId && {
12
- user_id: event.userId,
7
+ var _b = _a.trackAllPages, trackAllPages = _b === void 0 ? false : _b, _c = _a.trackNamedPages, trackNamedPages = _c === void 0 ? true : _c, _d = _a.trackCategorizedPages, trackCategorizedPages = _d === void 0 ? true : _d;
8
+ var pushEvent = function (event) {
9
+ window.dataLayer.push(__assign(__assign(__assign(__assign({}, (event.userId && {
10
+ userId: event.userId,
13
11
  })), (event.anonymousId && {
14
- hightouch_anonymous_id: event.anonymousId,
15
- })), (measurementIds.length > 0 && {
16
- send_to: measurementIds,
17
- })), event.properties);
12
+ hightouchAnonymousId: event.anonymousId,
13
+ })), { event: event.event }), event.properties));
18
14
  };
19
15
  return new Destination('Google Tag Manager', '0.0.1', {
20
- identify: function (ctx) {
21
- if (ctx.event.userId) {
22
- measurementIds.forEach(function (measurementId) {
23
- window.gtag('config', measurementId, {
24
- user_id: ctx.event.userId,
25
- });
26
- });
27
- }
28
- },
29
16
  page: function (ctx) {
30
17
  if (trackAllPages ||
31
18
  (trackNamedPages && ctx.event.name) ||
@@ -33,11 +20,11 @@ var googleTagManager = function (_a) {
33
20
  var eventName = ['Viewed', ctx.event.category, ctx.event.name, 'Page']
34
21
  .filter(Boolean)
35
22
  .join(' ');
36
- window.gtag('event', eventName, __assign({}, baseEvent(ctx)));
23
+ pushEvent(__assign(__assign({}, ctx.event), { type: 'track', event: eventName }));
37
24
  }
38
25
  },
39
26
  track: function (ctx) {
40
- window.gtag('event', ctx.event.event, __assign({}, baseEvent(ctx)));
27
+ pushEvent(ctx.event);
41
28
  },
42
29
  });
43
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"google-tag-manager.js","sourceRoot":"","sources":["../../../../src/plugins/destinations/google-tag-manager.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AA8B3C;;GAEG;AACH,IAAM,gBAAgB,GAAiD,UAAC,EAKvE;QAJC,qBAAkB,EAAlB,aAAa,mBAAG,EAAE,KAAA,EAClB,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA,EACrB,uBAAsB,EAAtB,eAAe,mBAAG,IAAI,KAAA,EACtB,6BAA4B,EAA5B,qBAAqB,mBAAG,IAAI,KAAA;IAE5B,IAAM,cAAc,GAAG,CACrB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAC/D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEjB,IAAM,SAAS,GAAG,UAAC,EAAkB;YAAhB,KAAK,WAAA;QACxB,+CACK,CAAC,KAAK,CAAC,MAAM,IAAI;YAClB,OAAO,EAAE,KAAK,CAAC,MAAM;SACtB,CAAC,GACC,CAAC,KAAK,CAAC,WAAW,IAAI;YACvB,sBAAsB,EAAE,KAAK,CAAC,WAAW;SAC1C,CAAC,GACC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI;YAC/B,OAAO,EAAE,cAAc;SACxB,CAAC,GACC,KAAK,CAAC,UAAU,EACpB;IACH,CAAC,CAAA;IAED,OAAO,IAAI,WAAW,CAAC,oBAAoB,EAAE,OAAO,EAAE;QACpD,QAAQ,EAAE,UAAC,GAAG;YACZ,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;gBACpB,cAAc,CAAC,OAAO,CAAC,UAAC,aAAa;oBACnC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;wBACnC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;qBAC1B,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;aACH;QACH,CAAC;QAED,IAAI,EAAE,UAAC,GAAG;YACR,IACE,aAAa;gBACb,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnC,CAAC,qBAAqB,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC7C;gBACA,IAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;qBACrE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,eACzB,SAAS,CAAC,GAAG,CAAC,EACjB,CAAA;aACH;QACH,CAAC;QAED,KAAK,EAAE,UAAC,GAAG;YACT,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,eAC/B,SAAS,CAAC,GAAG,CAAC,EACjB,CAAA;QACJ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"google-tag-manager.js","sourceRoot":"","sources":["../../../../src/plugins/destinations/google-tag-manager.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAyB3C;;GAEG;AACH,IAAM,gBAAgB,GAAiD,UAAC,EAIvE;QAHC,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA,EACrB,uBAAsB,EAAtB,eAAe,mBAAG,IAAI,KAAA,EACtB,6BAA4B,EAA5B,qBAAqB,mBAAG,IAAI,KAAA;IAE5B,IAAM,SAAS,GAAG,UAAC,KAAqB;QACtC,MAAM,CAAC,SAAS,CAAC,IAAI,yCAChB,CAAC,KAAK,CAAC,MAAM,IAAI;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,GACC,CAAC,KAAK,CAAC,WAAW,IAAI;YACvB,oBAAoB,EAAE,KAAK,CAAC,WAAW;SACxC,CAAC,KACF,KAAK,EAAE,KAAK,CAAC,KAAK,KACf,KAAK,CAAC,UAAU,EACnB,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,IAAI,WAAW,CAAC,oBAAoB,EAAE,OAAO,EAAE;QACpD,IAAI,EAAE,UAAC,GAAY;YACjB,IACE,aAAa;gBACb,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnC,CAAC,qBAAqB,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC7C;gBACA,IAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;qBACrE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,GAAG,CAAC,CAAA;gBAEZ,SAAS,uBACJ,GAAG,CAAC,KAAK,KACZ,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,SAAS,IAChB,CAAA;aACH;QACH,CAAC;QAED,KAAK,EAAE,UAAC,GAAY;YAClB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { __assign } from "tslib";
2
+ import { Destination } from './destination';
3
+ var gtag = function (_a) {
4
+ var _b = _a.measurementId, measurementId = _b === void 0 ? [] : _b, _c = _a.trackAllPages, trackAllPages = _c === void 0 ? false : _c, _d = _a.trackNamedPages, trackNamedPages = _d === void 0 ? true : _d, _e = _a.trackCategorizedPages, trackCategorizedPages = _e === void 0 ? true : _e;
5
+ var measurementIds = (Array.isArray(measurementId) ? measurementId : [measurementId]).filter(Boolean);
6
+ var baseEvent = function (_a) {
7
+ var event = _a.event;
8
+ return __assign(__assign(__assign(__assign({}, (event.userId && {
9
+ user_id: event.userId,
10
+ })), (event.anonymousId && {
11
+ hightouch_anonymous_id: event.anonymousId,
12
+ })), (measurementIds.length > 0 && {
13
+ send_to: measurementIds,
14
+ })), event.properties);
15
+ };
16
+ return new Destination('gtag', '0.0.1', {
17
+ identify: function (ctx) {
18
+ if (ctx.event.userId) {
19
+ measurementIds.forEach(function (measurementId) {
20
+ window.gtag('config', measurementId, {
21
+ user_id: ctx.event.userId,
22
+ });
23
+ });
24
+ }
25
+ },
26
+ page: function (ctx) {
27
+ if (trackAllPages ||
28
+ (trackNamedPages && ctx.event.name) ||
29
+ (trackCategorizedPages && ctx.event.category)) {
30
+ var eventName = ['Viewed', ctx.event.category, ctx.event.name, 'Page']
31
+ .filter(Boolean)
32
+ .join(' ');
33
+ window.gtag('event', eventName, __assign({}, baseEvent(ctx)));
34
+ }
35
+ },
36
+ track: function (ctx) {
37
+ window.gtag('event', ctx.event.event, __assign({}, baseEvent(ctx)));
38
+ },
39
+ });
40
+ };
41
+ export default gtag;
42
+ //# sourceMappingURL=gtag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtag.js","sourceRoot":"","sources":["../../../../src/plugins/destinations/gtag.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AA8B3C,IAAM,IAAI,GAAqC,UAAC,EAK/C;QAJC,qBAAkB,EAAlB,aAAa,mBAAG,EAAE,KAAA,EAClB,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA,EACrB,uBAAsB,EAAtB,eAAe,mBAAG,IAAI,KAAA,EACtB,6BAA4B,EAA5B,qBAAqB,mBAAG,IAAI,KAAA;IAE5B,IAAM,cAAc,GAAG,CACrB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAC/D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEjB,IAAM,SAAS,GAAG,UAAC,EAAkB;YAAhB,KAAK,WAAA;QACxB,+CACK,CAAC,KAAK,CAAC,MAAM,IAAI;YAClB,OAAO,EAAE,KAAK,CAAC,MAAM;SACtB,CAAC,GACC,CAAC,KAAK,CAAC,WAAW,IAAI;YACvB,sBAAsB,EAAE,KAAK,CAAC,WAAW;SAC1C,CAAC,GACC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI;YAC/B,OAAO,EAAE,cAAc;SACxB,CAAC,GACC,KAAK,CAAC,UAAU,EACpB;IACH,CAAC,CAAA;IAED,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;QACtC,QAAQ,EAAE,UAAC,GAAG;YACZ,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;gBACpB,cAAc,CAAC,OAAO,CAAC,UAAC,aAAa;oBACnC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;wBACnC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;qBAC1B,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;aACH;QACH,CAAC;QAED,IAAI,EAAE,UAAC,GAAG;YACR,IACE,aAAa;gBACb,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnC,CAAC,qBAAqB,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC7C;gBACA,IAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;qBACrE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,eACzB,SAAS,CAAC,GAAG,CAAC,EACjB,CAAA;aACH;QACH,CAAC;QAED,KAAK,EAAE,UAAC,GAAG;YACT,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,eAC/B,SAAS,CAAC,GAAG,CAAC,EACjB,CAAA;QACJ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -5,6 +5,10 @@ export function createDestination(name, settings) {
5
5
  return __awaiter(this, void 0, void 0, function () {
6
6
  return __generator(this, function (_a) {
7
7
  switch (name) {
8
+ case 'gtag':
9
+ return [2 /*return*/, import(/* webpackChunkName: "gtag" */ './gtag').then(function (mod) {
10
+ return mod.default(settings);
11
+ })];
8
12
  case 'Google Tag Manager':
9
13
  return [2 /*return*/, import(
10
14
  /* webpackChunkName: "google-tag-manager" */ './google-tag-manager').then(function (mod) { return mod.default(settings); })];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/destinations/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,CAAA;AAGtB,MAAM,UAAgB,iBAAiB,CACrC,IAAY,EACZ,QAA6B;;;YAE7B,QAAQ,IAAI,EAAE;gBACZ,KAAK,oBAAoB;oBACvB,sBAAO,MAAM;wBACX,4CAA4C,CAAC,sBAAsB,CACpE,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,OAAO,CAAC,QAAe,CAAC,EAA5B,CAA4B,CAAC,EAAA;gBAC/C;oBACE,sBAAO,SAAS,EAAA;aACnB;;;;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/destinations/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,CAAA;AAGtB,MAAM,UAAgB,iBAAiB,CACrC,IAAY,EACZ,QAA6B;;;YAE7B,QAAQ,IAAI,EAAE;gBACZ,KAAK,MAAM;oBACT,sBAAO,MAAM,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG;4BAC9D,OAAA,GAAG,CAAC,OAAO,CAAC,QAAe,CAAC;wBAA5B,CAA4B,CAC7B,EAAA;gBACH,KAAK,oBAAoB;oBACvB,sBAAO,MAAM;wBACX,4CAA4C,CAAC,sBAAsB,CACpE,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,OAAO,CAAC,QAAe,CAAC,EAA5B,CAA4B,CAAC,EAAA;gBAC/C;oBACE,sBAAO,SAAS,EAAA;aACnB;;;;CACF"}
@@ -91,7 +91,7 @@ export declare class AnalyticsBuffered implements PromiseLike<[Analytics, Contex
91
91
  register: (...args: import("../plugin").Plugin[]) => Promise<Context>;
92
92
  deregister: (...args: string[]) => Promise<Context>;
93
93
  user: () => Promise<import("../user").User>;
94
- readonly VERSION = "1.3.0";
94
+ readonly VERSION = "1.3.2";
95
95
  private _createMethod;
96
96
  /**
97
97
  * These are for methods that where determining when the method gets "flushed" is not important.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/session/index.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,cAAe,MAAM,KAAG,OAGrD,CAAA;AAID,eAAO,MAAM,sBAAsB,eAAgB,MAAM,KAAG,OAS3D,CAAA;AAKD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,oBACrB,MAAM,KACtB,WAaF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,QAAS,MAAM,KAAG,WAS3D,CAAA;AAED,eAAO,MAAM,uBAAuB,YAAa,WAAW,KAAG,WAM9D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/session/index.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,cAAe,MAAM,KAAG,OAGrD,CAAA;AAID,eAAO,MAAM,sBAAsB,eAAgB,MAAM,KAAG,OAS3D,CAAA;AAKD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,oBACrB,MAAM,KACtB,WAaF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,QAAS,MAAM,KAAG,WAS3D,CAAA;AAED,eAAO,MAAM,uBAAuB,YAAa,WAAW,KAAG,WAO9D,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.3.0";
1
+ export declare const version = "1.3.2";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,14 +1,10 @@
1
1
  import type { DestinationFactory } from './types';
2
2
  declare global {
3
3
  interface Window {
4
- gtag: Function;
4
+ dataLayer: Array<any>;
5
5
  }
6
6
  }
7
7
  type GoogleTagManagerSettings = {
8
- /**
9
- * The Google measurement ID(s) to send events to (GA4, Ads)
10
- */
11
- measurementId?: string | string[];
12
8
  /**
13
9
  * If a `Viewed Page` event should be sent for all `htevents.page` calls
14
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"google-tag-manager.d.ts","sourceRoot":"","sources":["../../../../src/plugins/destinations/google-tag-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,IAAI,EAAE,QAAQ,CAAA;KACf;CACF;AAED,KAAK,wBAAwB,GAAG;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAEjC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,wBAAwB,CA0DlE,CAAA;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"google-tag-manager.d.ts","sourceRoot":"","sources":["../../../../src/plugins/destinations/google-tag-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;KACtB;CACF;AAED,KAAK,wBAAwB,GAAG;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,wBAAwB,CAyClE,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -0,0 +1,27 @@
1
+ import type { DestinationFactory } from './types';
2
+ declare global {
3
+ interface Window {
4
+ gtag: Function;
5
+ }
6
+ }
7
+ type GtagSettings = {
8
+ /**
9
+ * The Google measurement ID(s) to send events to (GA4, Ads)
10
+ */
11
+ measurementId?: string | string[];
12
+ /**
13
+ * If a `Viewed Page` event should be sent for all `htevents.page` calls
14
+ */
15
+ trackAllPages?: boolean;
16
+ /**
17
+ * If a `Viewed <name> Page` event should be sent for `htevents.page('Name')` calls
18
+ */
19
+ trackNamedPages?: boolean;
20
+ /**
21
+ * If a `Viewed <category> <name> Page` event should be sent for `htevents.page('Category', 'Name')` calls
22
+ */
23
+ trackCategorizedPages?: boolean;
24
+ };
25
+ declare const gtag: DestinationFactory<GtagSettings>;
26
+ export default gtag;
27
+ //# sourceMappingURL=gtag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtag.d.ts","sourceRoot":"","sources":["../../../../src/plugins/destinations/gtag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,IAAI,EAAE,QAAQ,CAAA;KACf;CACF;AAED,KAAK,YAAY,GAAG;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAEjC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,QAAA,MAAM,IAAI,EAAE,kBAAkB,CAAC,YAAY,CA0D1C,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/destinations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,CAAA;AACtB,YAAY,EAAE,mBAAmB,EAAE,CAAA;AAEnC,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CASlC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/destinations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,CAAA;AACtB,YAAY,EAAE,mBAAmB,EAAE,CAAA;AAEnC,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAalC"}