account-upgrade.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. ...extraSearchParams,
  22. })
  23. window.open(
  24. `/user/subscription/choose-your-plan?${searchParams.toString()}`
  25. )
  26. }
  27. }
  28. export function upgradePlan(source: string) {
  29. const openedWindow = window.open()
  30. if (typeof window.ga === 'function') {
  31. window.ga('send', 'event', 'subscription-funnel', 'upgraded-plan', source)
  32. }
  33. if (openedWindow) {
  34. openedWindow.location = '/user/subscription'
  35. }
  36. }