Преглед изворни кода

Merge pull request #34374 from overleaf/oa-extend-telemetry

[web] Extend paywall telemetry

GitOrigin-RevId: 20efca13734a3aafe70a56fee19b76c62503b828
Olzhas Askar пре 2 месеци
родитељ
комит
5ae13ef025

+ 1 - 1
services/web/frontend/js/features/ide-react/components/toolbar/upgrade-button.tsx

@@ -27,7 +27,7 @@ export default function UpgradeButton({
         size="sm"
         href={
           plans2026
-            ? `/user/subscription/choose-your-plan?itm_referrer=${referrer}`
+            ? `/user/subscription/choose-your-plan?itm_referrer=${referrer}&paywall-type=${source}`
             : `/user/subscription/plans?itm_referrer=${referrer}`
         }
         target="_blank"

+ 4 - 0
services/web/frontend/js/features/pdf-preview/components/compile-timeout-paywall-modal.tsx

@@ -52,6 +52,7 @@ export function CompileTimeoutPaywallModal({
       const countryCode = getMeta('ol-countryCode')
 
       sendMB('paywall-plans-page-view', {
+        'paywall-type': 'compile-timeout',
         currency,
         countryCode,
         version: 'compile-timeout',
@@ -87,6 +88,7 @@ export function CompileTimeoutPaywallModal({
 
   const handleUpgrade = useCallback(() => {
     sendMB('paywall-plans-page-click', {
+      'paywall-type': 'compile-timeout',
       plan: 'collaborator',
       'billing-period': billingPeriod,
       currency,
@@ -98,6 +100,7 @@ export function CompileTimeoutPaywallModal({
 
   const viewAllPlansHref = useMemo(() => {
     const params = new URLSearchParams({
+      'paywall-type': 'compile-timeout',
       itm_campaign: 'compile-timeout',
     })
     return `/user/subscription/choose-your-plan?${params.toString()}`
@@ -105,6 +108,7 @@ export function CompileTimeoutPaywallModal({
 
   const handleViewAllPlans = useCallback(() => {
     sendMB('paywall-plans-page-click', {
+      'paywall-type': 'compile-timeout',
       button: 'plans',
       'billing-period': billingPeriod,
       currency,

+ 1 - 0
services/web/frontend/js/main/account-upgrade.ts

@@ -21,6 +21,7 @@ export function startFreeTrial(
   if (shouldNavigate) {
     const searchParams = new URLSearchParams({
       itm_campaign: source,
+      'paywall-type': source,
       ...extraSearchParams,
     })
 

+ 1 - 1
services/web/frontend/js/shared/components/paywall-upgrade-button.tsx

@@ -28,7 +28,7 @@ export default function PaywallUpgradeButton({
     <OLButton
       variant="premium"
       size="sm"
-      href={`/user/subscription/choose-your-plan?itm_referrer=${referrer}&itm_campaign=${paywallType}`}
+      href={`/user/subscription/choose-your-plan?itm_referrer=${referrer}&itm_campaign=${paywallType}&paywall-type=${paywallType}`}
       target="_blank"
       rel="noreferrer"
       className={className}

+ 1 - 0
services/web/frontend/js/utils/meta.ts

@@ -114,6 +114,7 @@ export interface Meta {
   'ol-csrfToken': string
   'ol-currentInstitutionsWithLicence': Institution[]
   'ol-currentManagedUserAdminEmail': string
+  'ol-currentPlanCode': string | null
   'ol-currentUrl': string
   'ol-customerIoEnabled': boolean
   'ol-debugPdfDetach': boolean

+ 1 - 1
services/web/test/frontend/components/shared/start-free-trial-button.spec.tsx

@@ -92,7 +92,7 @@ describe('start free trial button', function () {
         .should('eq', 'cypress-test')
       cy.get('@Open').should(
         'have.been.calledOnceWithExactly',
-        '/user/subscription/choose-your-plan?itm_campaign=cypress-test'
+        '/user/subscription/choose-your-plan?itm_campaign=cypress-test&paywall-type=cypress-test'
       )
       expect(onClickStub).to.be.called
     })

+ 1 - 1
services/web/test/frontend/shared/components/paywall-upgrade-button.test.tsx

@@ -22,7 +22,7 @@ describe('<PaywallUpgradeButton />', function () {
 
     const upgradeLink = screen.getByRole('link', { name: 'Upgrade' })
     expect(upgradeLink.getAttribute('href')).to.equal(
-      '/user/subscription/choose-your-plan?itm_referrer=ai&itm_campaign=assistant'
+      '/user/subscription/choose-your-plan?itm_referrer=ai&itm_campaign=assistant&paywall-type=assistant'
     )
     expect(upgradeLink.getAttribute('target')).to.equal('_blank')
     expect(upgradeLink.getAttribute('rel')).to.equal('noreferrer')