diff --git a/app/hub/Views/UpgradePlanView/UpgradePlanView.jsx b/app/hub/Views/UpgradePlanView/UpgradePlanView.jsx index f4a70019b..d3515c418 100644 --- a/app/hub/Views/UpgradePlanView/UpgradePlanView.jsx +++ b/app/hub/Views/UpgradePlanView/UpgradePlanView.jsx @@ -166,20 +166,14 @@ const UpgradePlanView = (props) => { mobileComparisonTableRef.current.scrollIntoView({ behavior: 'smooth' }); }; - // UTM params - const signedIn = +!!user; - const subscriptionType = () => { - if (isPremium) return 'PREMIUM'; - if (isPlus) return 'SUPPORTER'; - return '-1'; - }; - // Interval is the query Param to show monthly/yearly pricing in checkout web, also used as a ping parameter + // UTM and Query Params + // interval is the query param to show monthly/yearly pricing in checkout web const interval = show_yearly_prices ? 'year' : 'month'; - const utmParams = `utm_source=gbe&signedIn=${signedIn}&st=${subscriptionType()}&subscription_interval=${interval}`; + const params = `utm_source=gbe&interval=${interval}`; const plusCTAButton = (position) => { - const utm_campaign = position === 'top' ? 'c_1' : 'c_2'; - const plusCheckoutLink = `${globals.CHECKOUT_BASE_URL}/plus?${utmParams}&utm_campaign=intro_hub_${utm_campaign}`; + const utm_campaign = (position === 'top' ? 'c_1' : 'c_2'); + const plusCheckoutLink = `${globals.CHECKOUT_BASE_URL}/plus?${params}&utm_campaign=intro_hub_${utm_campaign}`; return ( @@ -189,8 +183,8 @@ const UpgradePlanView = (props) => { }; const premiumCTAButton = (position) => { - const utm_campaign = position === 'top' ? 'c_3' : 'c_4'; - const premiumCheckoutLink = `${globals.CHECKOUT_BASE_URL}/premium?${utmParams}&utm_campaign=intro_hub_${utm_campaign}`; + const utm_campaign = (position === 'top' ? 'c_3' : 'c_4'); + const premiumCheckoutLink = `${globals.CHECKOUT_BASE_URL}/premium?${params}&utm_campaign=intro_hub_${utm_campaign}`; return ( diff --git a/src/classes/Metrics.js b/src/classes/Metrics.js index 13a1efa62..0578ddfc0 100644 --- a/src/classes/Metrics.js +++ b/src/classes/Metrics.js @@ -370,7 +370,9 @@ class Metrics { // New parameter for Ghostery 8.5.2 // Hub Promo variant - `&hp=${encodeURIComponent(Metrics._getHubPromoVariant().toString())}`; + `&hp=${encodeURIComponent(Metrics._getHubPromoVariant().toString())}` + + // Subscription Interval + `&subscription_interval=${encodeURIComponent(Metrics._getSubscriptionInterval().toString())}`; if (CAMPAIGN_METRICS.includes(type)) { // only send campaign attribution when necessary @@ -550,6 +552,24 @@ class Metrics { } } + /** + * Get the Int associated with the users subscription interval + * @private + * @return {number} String associated with the users subscription interval + */ + static _getSubscriptionInterval() { + const subscriptionInterval = conf && conf.account && conf.account.subscriptionData && conf.account.subscriptionData.planInterval; + + switch (subscriptionInterval) { + case 'month': + return 1; + case 'year': + return 2; + default: + return 0; + } + } + /** * Calculate remaining scheduled time for a ping *