From 950baec5a69ca10d0489b94908eb582c39547c22 Mon Sep 17 00:00:00 2001 From: Yuval Hazaz Date: Thu, 13 Jul 2023 15:42:12 +0300 Subject: [PATCH] Feat/split testing (#390) * move first page event to useEffect * add traits.experiment * run formatter * remove unneeded file --- lib/analytics/index.js | 20 ++++++++++++++++---- pages/_app.js | 2 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/analytics/index.js b/lib/analytics/index.js index a97ac798..c8659d0a 100644 --- a/lib/analytics/index.js +++ b/lib/analytics/index.js @@ -1,7 +1,11 @@ // log the page view with their URL export const page = (name, props) => { //segment - window.analytics?.page(name, props); + window.analytics?.page(name, props, { + traits: { + experiment: window?.amplication?.branchName || 'main', + }, + }); // hubspot window._hsq?.push(['setPath', name]); window._hsq?.push(['trackPageView']); @@ -10,7 +14,15 @@ export const page = (name, props) => { // log specific events happening. export const event = ({action, params}) => { const analytics = window.analytics; - analytics.track(action, { - ...params, - }); + analytics.track( + action, + { + ...params, + }, + { + traits: { + experiment: window?.amplication?.branchName || 'main', + }, + } + ); }; diff --git a/pages/_app.js b/pages/_app.js index b9b712be..97ebf4a8 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -31,6 +31,7 @@ function Amplication({Component, pageProps}) { const handleRouteChange = url => { analytics.page(url, {url}); }; + analytics.page(router.asPath, {url: router.asPath}); //When the component is mounted, subscribe to router changes //and log those page views router.events.on('routeChangeComplete', handleRouteChange); @@ -121,7 +122,6 @@ function Amplication({Component, pageProps}) { __html: ` !function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"];analytics.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);analytics.push(t);return analytics}};for(var e=0;e