account-upgrade.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import * as eventTracking from '../infrastructure/event-tracking'
  2. export function startFreeTrial(
  3. source: string,
  4. variant?: string,
  5. segmentation?: eventTracking.Segmentation,
  6. extraSearchParams?: Record<string, string>,
  7. shouldNavigate: boolean = true
  8. ) {
  9. const eventSegmentation: Record<string, string> = {
  10. 'paywall-type': source,
  11. ...segmentation,
  12. }
  13. if (variant) {
  14. eventSegmentation.variant = variant
  15. }
  16. eventTracking.send('subscription-funnel', 'upgraded-free-trial', source)
  17. eventTracking.sendMB('paywall-click', eventSegmentation)
  18. if (shouldNavigate) {
  19. const searchParams = new URLSearchParams({
  20. itm_campaign: source,
  21. 'paywall-type': source,
  22. ...extraSearchParams,
  23. })
  24. window.open(
  25. `/user/subscription/choose-your-plan?${searchParams.toString()}`
  26. )
  27. }
  28. }
  29. export function upgradePlan(source: string) {
  30. const openedWindow = window.open()
  31. if (typeof window.ga === 'function') {
  32. window.ga('send', 'event', 'subscription-funnel', 'upgraded-plan', source)
  33. }
  34. if (openedWindow) {
  35. openedWindow.location = '/user/subscription'
  36. }
  37. }