Merge pull request #30471 from overleaf/ii-linkedin-insight-tag

[web] Add Linkedin Insight tag

GitOrigin-RevId: f01e1908ad945a5db10343a04ee50104efa32c3c
This commit is contained in:
ilkin-overleaf
2026-01-08 12:03:33 +02:00
committed by Copybot
parent e0483dd6c3
commit 7931c7b3eb
6 changed files with 42 additions and 0 deletions

View File

@@ -390,6 +390,7 @@ export default async function (webRouter, privateApiRouter, publicApiRouter) {
Settings.overleaf != null || Settings.templates?.user_id != null,
cioWriteKey: Settings.analytics?.cio?.writeKey,
cioSiteId: Settings.analytics?.cio?.siteId,
linkedInInsightsPartnerId: Settings.analytics?.linkedIn?.partnerId,
}
next()
})

View File

@@ -0,0 +1,3 @@
if typeof suppressAnalytics == 'undefined'
each file in entrypointScripts('linkedin-insight')
script(type='text/javascript' nonce=scriptNonce src=file defer=deferScripts)

View File

@@ -0,0 +1,32 @@
import getMeta from '@/utils/meta'
import {
createTrackingLoader,
insertScript,
} from '@/infrastructure/tracking-loader'
const loadLinkedInInsightScript = (linkedInInsightsPartnerId: string) => {
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []
window._linkedin_data_partner_ids.push(linkedInInsightsPartnerId)
if (!window.lintrk) {
window.lintrk = Object.assign(
(a: string, b?: unknown) => {
window.lintrk!.q.push([a, b])
},
{ q: [] }
)
}
insertScript({
src: 'https://snap.licdn.com/li.lms-analytics/insight.min.js',
async: true,
})
}
const { linkedInInsightsPartnerId } = getMeta('ol-ExposedSettings')
if (linkedInInsightsPartnerId) {
createTrackingLoader(
() => loadLinkedInInsightScript(linkedInInsightsPartnerId),
'LinkedIn Insight'
)
}

View File

@@ -50,4 +50,5 @@ export type ExposedSettings = {
labsEnabled: boolean
wikiEnabled?: boolean
templatesEnabled?: boolean
linkedInInsightsPartnerId?: string
}

View File

@@ -29,5 +29,9 @@ declare global {
propensity?: (propensityId?: string) => void
olLoadGA?: () => void
grecaptcha?: ReCaptchaInstance
_linkedin_data_partner_ids?: string[]
lintrk?: ((a: string, b?: unknown) => void) & {
q: Array<[string, unknown?]>
}
}
}

View File

@@ -22,6 +22,7 @@ const entryPoints = {
marketing: './frontend/js/marketing.ts',
'main-style': './frontend/stylesheets/main-style.scss',
tracking: './frontend/js/infrastructure/tracking.ts',
'linkedin-insight': './frontend/js/infrastructure/linkedin-insight.ts',
}
// Add entrypoints for each "page"