Merge pull request #6423 from overleaf/tm-plans-new-events

Add new analytics events to plans page/subscription flow

GitOrigin-RevId: 7b70ee30749ebc671cf2445f3cbdae91a7278b01
This commit is contained in:
Thomas 2022-02-01 11:54:13 +01:00 committed by Copybot
parent 7a445eb489
commit 1777c075ea
4 changed files with 28 additions and 4 deletions

View file

@ -54,6 +54,8 @@ async function plansPage(req, res) {
usage: getDefault('usage', 'usage', 'enterprise'), usage: getDefault('usage', 'usage', 'enterprise'),
} }
AnalyticsManager.recordEventForSession(req.session, 'plans-page-view')
res.render('subscriptions/plans-marketing', { res.render('subscriptions/plans-marketing', {
title: 'plans_and_pricing', title: 'plans_and_pricing',
plans, plans,

View file

@ -62,6 +62,7 @@ block content
a.btn.btn-default( a.btn.btn-default(
href="#groups" href="#groups"
data-ol-open-group-plan-modal data-ol-open-group-plan-modal
data-ol-location='callout'
) #{translate('find_out_more')} ) #{translate('find_out_more')}
.row.row-spaced-large .row.row-spaced-large

View file

@ -69,7 +69,7 @@ function showGroupPlanModal() {
'subscription-funnel', 'subscription-funnel',
'plans-page', 'plans-page',
'group-inquiry-potential' 'group-inquiry-potential'
) ) // deprecated by plans-page-click
} }
document document
@ -94,6 +94,12 @@ document.querySelectorAll('[data-ol-purchase-group-plan]').forEach(el =>
if (itmContent) { if (itmContent) {
queryParams.set('itm_content', itmContent) queryParams.set('itm_content', itmContent)
} }
eventTracking.sendMB('groups-modal-click', {
plan: planCode,
users: size,
currency: currency,
type: usage,
})
const url = new URL('/user/subscription/new', window.origin) const url = new URL('/user/subscription/new', window.origin)
url.search = queryParams.toString() url.search = queryParams.toString()
window.location = url.toString() window.location = url.toString()
@ -101,8 +107,14 @@ document.querySelectorAll('[data-ol-purchase-group-plan]').forEach(el =>
) )
document.querySelectorAll('[data-ol-open-group-plan-modal]').forEach(el => { document.querySelectorAll('[data-ol-open-group-plan-modal]').forEach(el => {
const location = el.getAttribute('data-ol-location')
el.addEventListener('click', function (e) { el.addEventListener('click', function (e) {
e.preventDefault() e.preventDefault()
eventTracking.sendMB('plans-page-click', {
button: 'group',
location,
period: 'annual',
})
showGroupPlanModal() showGroupPlanModal()
}) })
}) })

View file

@ -11,7 +11,8 @@ function setUpViewSwitching(liEl) {
const view = liEl.getAttribute('data-ol-view-tab') const view = liEl.getAttribute('data-ol-view-tab')
liEl.querySelector('a').addEventListener('click', function (e) { liEl.querySelector('a').addEventListener('click', function (e) {
e.preventDefault() e.preventDefault()
eventTracking.send('subscription-funnel', 'plans-page', `${view}-prices`) eventTracking.send('subscription-funnel', 'plans-page', `${view}-prices`) // deprecated by plans-page-toggle
eventTracking.sendMB('plans-page-toggle', { button: view })
document.querySelectorAll('[data-ol-view-tab]').forEach(el => { document.querySelectorAll('[data-ol-view-tab]').forEach(el => {
if (el.getAttribute('data-ol-view-tab') === view) { if (el.getAttribute('data-ol-view-tab') === view) {
el.classList.add('active') el.classList.add('active')
@ -35,6 +36,7 @@ function setUpCurrencySwitching(linkEl) {
el.hidden = el.getAttribute('data-ol-currencyCode') !== currencyCode el.hidden = el.getAttribute('data-ol-currencyCode') !== currencyCode
}) })
currentCurrencyCode = currencyCode currentCurrencyCode = currencyCode
eventTracking.sendMB('plans-page-currency', { currency: currencyCode })
updateLinkTargets() updateLinkTargets()
}) })
} }
@ -43,14 +45,21 @@ function setUpSubscriptionTracking(linkEl) {
const plan = const plan =
linkEl.getAttribute('data-ol-tracking-plan') || linkEl.getAttribute('data-ol-tracking-plan') ||
linkEl.getAttribute('data-ol-start-new-subscription') linkEl.getAttribute('data-ol-start-new-subscription')
const location = linkEl.getAttribute('data-ol-location')
const period = linkEl.getAttribute('data-ol-item-view') || currentView
linkEl.addEventListener('click', function () { linkEl.addEventListener('click', function () {
const customLabel = linkEl.getAttribute('data-ol-tracking-label') const customLabel = linkEl.getAttribute('data-ol-tracking-label')
const computedLabel = currentView === 'annual' ? `${plan}_annual` : plan const computedLabel = currentView === 'annual' ? `${plan}_annual` : plan
const label = customLabel || computedLabel const label = customLabel || computedLabel
eventTracking.sendMB('plans-page-start-trial') eventTracking.sendMB('plans-page-start-trial') // deprecated by plans-page-click
eventTracking.send('subscription-funnel', 'sign_up_now_button', label) eventTracking.send('subscription-funnel', 'sign_up_now_button', label) // deprecated by plans-page-click
eventTracking.sendMB('plans-page-click', {
button: plan,
location,
period,
})
}) })
} }