Merge pull request #26901 from overleaf/rh-hotjar-marketing

Add hotjar tracking to marketing pages

GitOrigin-RevId: 5490392b44a287e4853778416323b3aa5fbfc1ef
This commit is contained in:
roo hutton
2025-07-10 10:24:32 +01:00
committed by Copybot
parent 2b9268c8ef
commit 269c2db96e
5 changed files with 17 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ import ErrorController from '../Errors/ErrorController.js'
import SessionManager from '../Authentication/SessionManager.js'
import { expressify } from '@overleaf/promise-utils'
import logger from '@overleaf/logger'
import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
const __dirname = new URL('.', import.meta.url).pathname
@@ -31,7 +32,15 @@ async function home(req, res) {
page: req.path,
})
res.render('external/home/index')
const hotjarAssignment = await SplitTestHandler.promises.getAssignment(
req,
res,
'hotjar-marketing'
)
res.render('external/home/index', {
shouldLoadHotjar: hotjarAssignment?.variant === 'enabled',
})
} else {
res.redirect('/login')
}

View File

@@ -6,6 +6,9 @@ include ./_mixins/bootstrap_js
block entrypointVar
- entrypoint = 'marketing'
block append meta
meta(name='ol-shouldLoadHotjar' data-type='boolean' content=shouldLoadHotjar)
block body
if typeof suppressNavbar == 'undefined'
if bootstrapVersion === 5

View File

@@ -30,7 +30,8 @@ function setConsent(value) {
if (
getMeta('ol-ExposedSettings').gaToken ||
getMeta('ol-ExposedSettings').gaTokenV4 ||
getMeta('ol-ExposedSettings').propensityId
getMeta('ol-ExposedSettings').propensityId ||
getMeta('ol-ExposedSettings').hotjarId
) {
document
.querySelectorAll('[data-ol-cookie-banner-set-consent]')

View File

@@ -1,5 +1,6 @@
import './utils/webpack-public-path'
import './infrastructure/error-reporter'
import './infrastructure/hotjar'
import './features/form-helpers/hydrate-form'
import './features/form-helpers/password-visibility'
import './features/link-helpers/slow-link'

View File

@@ -1,4 +1,5 @@
import '../../marketing'
import '@/infrastructure/hotjar'
function homepageAnimation(homepageAnimationEl) {
function createFrames(word, { buildTime, holdTime, breakTime }) {