@newageerp/node-analytics
v1.0.53
Published
```bash npm install @newageerp/node-analytics ```
Readme
install
npm install @newageerp/node-analyticsENV variables
- CRM_ADS_BACKEND - if facebook capi (s2s) is needed, mostly YES
- ANALYTICS_PROJECT - if analytics used, mostly YES
- AMQP_AN_QUEUE - if analytics used, mostly YES
- AMQP_KL_QUEUE - if klaviyo is used, mostly YES
.env / .env.stg example
CRM_ADS_BACKEND=https://ads.crm.apidata.app/app/Pub/S2S
AMQP_AN_QUEUE=staging.common.analytics
AMQP_KL_QUEUE=based on project (see below)
ANALYTICS_PROJECT=staging.env.prod example
- CRM_ADS_BACKEND - replace apidata.app with project domain (if this is a test/RnD project, then use the domain of the main project, whose payments are used)
- AMQP_AN_QUEUE possible production variables (if there are no suitable ones, contact the manager)
- biofema.front.analytics
- herwealth.front-en.analytics
- mellow.front-en.analytics
- parentingleader.front-en.analytics
- shiftmind.app.analytics
- shiftmind.front.analytics
- today.app-en.analytics
- today.front-en.analytics
- today.front-fr.analytics
- wingman.front-en.analytics
- frb.front.analytics (Forbio)
- frb.app.analytics (Forbio)
- bls.front.analytics (Blessify)
- wws.front.analytics (WorkWithShadow)
- wws.app.analytics (WorkWithShadow)
- AMQP_KL_QUEUE possible production variables (if there are no suitable ones, contact the manager)
- biofema.klaviyo
- cosmic.klaviyo
- mellow.klaviyo
- parenting.klaviyo
- shiftmind.klaviyo
- today.klaviyo
- today_kendago.klaviyo
- wingman.klaviyo
- bls.klaviyo (Blessify)
- frb.klaviyo (Forbio)
- wws.klaviyo (WorkWithShadow)
- ANALYTICS_PROJECT - ask manager
middleware.ts
import { analyticsSrv } from '@newageerp/node-analytics'
const analyticsResp = await analyticsSrv.checkForRoutes(req, `${process.env.ANALYTICS_PROJECT}`, 'amqp')
if (analyticsResp) {
return analyticsResp
}
export const config = {
matcher: '/((?!_next/static|_next/image|favicon.ico).*)',
}
Usage
analytic events
track event [- IMPORTANT -]
mostly used events we want a track
- Landing or HomePage - call on homepage
- StartQuiz - when first question appear or on start quiz button click
- FinishQuiz - when quiz finished
- ResultsPage - on result page load
- EmailPage - on email page load
- EmailLeft - on email submit
- CheckoutPage - on checkout page load
- PaymentWindow - on checkout page load
- Purchase - on
paid/[uuid]route - UpSellRedirect - see example in node/ab-tool package
- Q-001 - Q-999 - Quiz steps
[- IMPORTANT -] old projects may use different event names, do not change them to the ones above without a special task
useEffect(() => {
analyticsBrowser.anTrackEvent(eventName).catch(console.error)
}, [])s2s / capi
after purchase confirmation (server side)
await facebookSrv.s2s({
sourceUrl: `${json.origin}`,
uuid,
total,
})klaviyo
send event to klaviyo
await klaviyoBrowser.track({
eventName: 'user_created',
email: email.trim(),
properties: {},
customerProperties: {
initQuery: analyticsBrowser.getSearchParamsFromLocalStorage(),
initFunnel: getLandingFlowRootPath(params),
},
})GA Events [- IMPORTANT -]
gaAfterUserCreateEvent
call when user provides email, most often on email/[uuid] path
analyticsBrowser.gaAfterUserCreateEvent({ uuid, email })gaAfterCreateSessionEvent
call after we create session, most often after quiz finish
analyticsBrowser.gaAfterCreateSessionEvent({ uuid })gaAfterPurchaseEvent
call after paid confirmation, paid/[uuid] page
analyticsBrowser.gaAfterPurchaseEvent({uuid, currency, total})gaAfterUpsellEvent
call after success upsell charge
analyticsBrowser.gaAfterUpsellEvent({uuid, currency, total})gaOnCheckoutPageEvent
call on checkout page load
analyticsBrowser.gaOnCheckoutPageEvent({ uuid })gaOnPaymentWindowEvent
call on payment window appear
analyticsBrowser.gaOnPaymentWindowEvent({
uuid,
total,
currency,
})