@uniformdev/context-gtag 16.0.1-alpha.194 → 16.1.1-alpha.139
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.
- package/README.md +70 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,5 +1,74 @@
|
|
|
1
|
-
Uniform Context Google Global Site Tag (GTAG) Plugin
|
|
1
|
+
# Uniform Context Google Global Site Tag (GTAG) Plugin
|
|
2
2
|
|
|
3
3
|
Contains a plugin for analytics event emission to Google Analytics via gtag.js
|
|
4
4
|
|
|
5
5
|
part of the [Uniform Platform](https://uniform.app). See our [documentation](https://docs.uniform.app) for more details.
|
|
6
|
+
|
|
7
|
+
## Usage:
|
|
8
|
+
|
|
9
|
+
This package is a plugin for Uniform Context, so we just add it like this:
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import { Context, ManifestV2, ContextPlugin } from "@uniformdev/context";
|
|
13
|
+
import { NextCookieTransitionDataStore } from "@uniformdev/context-next";
|
|
14
|
+
import { NextPageContext } from "next";
|
|
15
|
+
import manifest from "./manifest.json";
|
|
16
|
+
import { enableGoogleGtagAnalytics } from '@uniformdev/context-gtag';
|
|
17
|
+
|
|
18
|
+
export function createUniformContext(serverContext?: NextPageContext) {
|
|
19
|
+
const plugins: ContextPlugin[] = [enableGoogleGtagAnalytics()];
|
|
20
|
+
|
|
21
|
+
const context = new Context({
|
|
22
|
+
manifest: manifest as ManifestV2,
|
|
23
|
+
transitionStore: new NextCookieTransitionDataStore({
|
|
24
|
+
serverContext,
|
|
25
|
+
}),
|
|
26
|
+
plugins: plugins
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
return context;
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
and then load Google Analytics tracking itself in `_document.tsx`:
|
|
34
|
+
```tsx
|
|
35
|
+
class MyDocument extends Document {
|
|
36
|
+
render(): React.ReactElement {
|
|
37
|
+
return (
|
|
38
|
+
<Html lang="en">
|
|
39
|
+
<Head />
|
|
40
|
+
<body className="leading-normal tracking-normal text-white gradient">
|
|
41
|
+
<script async src={`https://www.googletagmanager.com/gtag/js?id=${process.env.YOUR_GA_ID}`}></script>
|
|
42
|
+
<script
|
|
43
|
+
dangerouslySetInnerHTML={{
|
|
44
|
+
__html: `
|
|
45
|
+
window.dataLayer = window.dataLayer || [];
|
|
46
|
+
function gtag(){dataLayer.push(arguments);}
|
|
47
|
+
gtag('js', new Date());
|
|
48
|
+
gtag('config', '${gaTrackingId}', {
|
|
49
|
+
page_path: window.location.pathname,
|
|
50
|
+
});
|
|
51
|
+
`
|
|
52
|
+
}}
|
|
53
|
+
/>
|
|
54
|
+
<Main />
|
|
55
|
+
<NextScript />
|
|
56
|
+
</body>
|
|
57
|
+
</Html>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export default MyDocument;
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
or you can include Gtag via GTM - https://support.google.com/tagmanager/answer/6102821?hl=en_US
|
|
67
|
+
|
|
68
|
+
## Google Analytics 4
|
|
69
|
+
|
|
70
|
+
This package uses `event_category` and `event_label` properties from GA UA
|
|
71
|
+
|
|
72
|
+
which are not supported by GA4 by default, so you will have to create these
|
|
73
|
+
|
|
74
|
+
as Custom Dimensions yourself. https://support.google.com/analytics/answer/10075209?hl=en#new-custom-dimension
|
package/dist/index.d.ts
CHANGED
|
@@ -7,17 +7,17 @@ declare global {
|
|
|
7
7
|
}
|
|
8
8
|
declare const enableGoogleGtagAnalytics: (options?: {
|
|
9
9
|
/** If true, disables reflecting events passed to gtag into Uniform Context as event signals */
|
|
10
|
-
disableEventSignals?: boolean
|
|
10
|
+
disableEventSignals?: boolean;
|
|
11
11
|
/** Override the window object that will have the gtag property added to it */
|
|
12
12
|
theWindow?: {
|
|
13
|
-
gtag?: Gtag.Gtag
|
|
14
|
-
__UF_PATCHED_GTAG__?: boolean
|
|
15
|
-
}
|
|
13
|
+
gtag?: Gtag.Gtag;
|
|
14
|
+
__UF_PATCHED_GTAG__?: boolean;
|
|
15
|
+
};
|
|
16
16
|
/** Whether to emit every personalize and test that occurs, or only if something has actually changed
|
|
17
17
|
* false (default): only emit events when a test assigns a variant the first time, or a personalization chooses different variants than before
|
|
18
18
|
* true: emit an event every time a personalization or test is evaluated (e.g. for vDOM frameworks, each time a re-render occurs)
|
|
19
19
|
*/
|
|
20
|
-
emitAll?: boolean
|
|
21
|
-
}
|
|
20
|
+
emitAll?: boolean;
|
|
21
|
+
}) => ContextPlugin;
|
|
22
22
|
|
|
23
23
|
export { enableGoogleGtagAnalytics };
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var f=s=>{let{disableEventSignals:_,theWindow:e=typeof window!="undefined"?window:void 0,emitAll:i}=s||{},o=()=>typeof e!="undefined"&&typeof e.gtag=="function";return{init:a=>{let l=n=>{var t;if(!o()){a.log("warn",700);return}!i&&!n.changed||(t=e.gtag)==null||t.call(e,"event",n.name,{event_category:"Uniform Personalization",event_label:n.variantIds.join(", "),is_control_group:n.control?1:0})},r=n=>{var t,g;if(!o()){a.log("warn",700);return}!i&&!n.variantAssigned||(g=e.gtag)==null||g.call(e,"event",n.name,{event_category:"Uniform AB Testing",event_label:(t=n.variantId)!=null?t:"No Variant"})};if(a.events.on("personalizationResult",l),a.events.on("testResult",r),!_&&o()&&!(e!=null&&e.__UF_PATCHED_GTAG__)){let n=e.gtag;e.gtag=(...t)=>{n(...t),t[0]==="event"&&a.update({events:[{event:t[1]}]})},a.log("debug",701),e.__UF_PATCHED_GTAG__=!0}return()=>{a.events.off("personalizationResult",l),a.events.off("testResult",r)}}}};export{f as enableGoogleGtagAnalytics};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var g=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var G=(a,n)=>{for(var e in n)g(a,e,{get:n[e],enumerable:!0})},A=(a,n,e,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of u(n))!d.call(a,o)&&o!==e&&g(a,o,{get:()=>n[o],enumerable:!(r=v(n,o))||r.enumerable});return a};var b=a=>A(g({},"__esModule",{value:!0}),a);var E={};G(E,{enableGoogleGtagAnalytics:()=>T});module.exports=b(E);var T=a=>{let{disableEventSignals:n,theWindow:e=typeof window!="undefined"?window:void 0,emitAll:r}=a||{},o=()=>typeof e!="undefined"&&typeof e.gtag=="function";return{init:l=>{let s=t=>{var i;if(!o()){l.log("warn",700);return}!r&&!t.changed||(i=e.gtag)==null||i.call(e,"event",t.name,{event_category:"Uniform Personalization",event_label:t.variantIds.join(", "),is_control_group:t.control?1:0})},_=t=>{var i,f;if(!o()){l.log("warn",700);return}!r&&!t.variantAssigned||(f=e.gtag)==null||f.call(e,"event",t.name,{event_category:"Uniform AB Testing",event_label:(i=t.variantId)!=null?i:"No Variant"})};if(l.events.on("personalizationResult",s),l.events.on("testResult",_),!n&&o()&&!(e!=null&&e.__UF_PATCHED_GTAG__)){let t=e.gtag;e.gtag=(...i)=>{t(...i),i[0]==="event"&&l.update({events:[{event:i[1]}]})},l.log("debug",701),e.__UF_PATCHED_GTAG__=!0}return()=>{l.events.off("personalizationResult",s),l.events.off("testResult",_)}}}};0&&(module.exports={enableGoogleGtagAnalytics});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var f=s=>{let{disableEventSignals:_,theWindow:e=typeof window!="undefined"?window:void 0,emitAll:i}=s||{},o=()=>typeof e!="undefined"&&typeof e.gtag=="function";return{init:a=>{let l=n=>{var t;if(!o()){a.log("warn",700);return}!i&&!n.changed||(t=e.gtag)==null||t.call(e,"event",n.name,{event_category:"Uniform Personalization",event_label:n.variantIds.join(", "),is_control_group:n.control?1:0})},r=n=>{var t,g;if(!o()){a.log("warn",700);return}!i&&!n.variantAssigned||(g=e.gtag)==null||g.call(e,"event",n.name,{event_category:"Uniform AB Testing",event_label:(t=n.variantId)!=null?t:"No Variant"})};if(a.events.on("personalizationResult",l),a.events.on("testResult",r),!_&&o()&&!(e!=null&&e.__UF_PATCHED_GTAG__)){let n=e.gtag;e.gtag=(...t)=>{n(...t),t[0]==="event"&&a.update({events:[{event:t[1]}]})},a.log("debug",701),e.__UF_PATCHED_GTAG__=!0}return()=>{a.events.off("personalizationResult",l),a.events.off("testResult",r)}}}};export{f as enableGoogleGtagAnalytics};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uniformdev/context-gtag",
|
|
3
|
-
"version": "16.
|
|
3
|
+
"version": "16.1.1-alpha.139+190bc76f4",
|
|
4
4
|
"description": "Uniform Context Google global site tag analytics package",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@types/gtag.js": "0.0.10"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@uniformdev/context": "^16.
|
|
31
|
+
"@uniformdev/context": "^16.1.1-alpha.139+190bc76f4"
|
|
32
32
|
},
|
|
33
33
|
"files": [
|
|
34
34
|
"/dist"
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "190bc76f4f0d6e3c1a61fbbd8e9abe8a0571f85a"
|
|
40
40
|
}
|