From 688a17d718beb1c2922975a8a9df3d15f7d7db5b Mon Sep 17 00:00:00 2001 From: Rebeka Date: Tue, 1 Aug 2023 17:02:20 +0200 Subject: [PATCH] add annual trial split test GitOrigin-RevId: 01b04a1fc7054178b6c17f7e4f0f5aef3e72ac24 --- .../Subscription/SubscriptionController.js | 63 ++++++++++++++++--- 1 file changed, 53 insertions(+), 10 deletions(-) diff --git a/services/web/app/src/Features/Subscription/SubscriptionController.js b/services/web/app/src/Features/Subscription/SubscriptionController.js index 44a8f13893..8766f3d4da 100644 --- a/services/web/app/src/Features/Subscription/SubscriptionController.js +++ b/services/web/app/src/Features/Subscription/SubscriptionController.js @@ -96,6 +96,22 @@ async function plansPage(req, res) { } } + // annual plans with the free trial option split test - nudge variant + let annualTrialsAssignment = { variant: 'default' } + + try { + annualTrialsAssignment = await SplitTestHandler.promises.getAssignment( + req, + res, + 'annual-trials' + ) + } catch (error) { + logger.error( + { err: error }, + 'failed to get "annualTrialsAssignment" split test assignment' + ) + } + const plansPageViewSegmentation = { currency: recommendedCurrency, countryCode, @@ -107,6 +123,7 @@ async function plansPage(req, res) { ) ? 'latam' : 'default', + 'annual-trials': annualTrialsAssignment?.variant, } if (inrGeoBannerSplitTestName) { plansPageViewSegmentation[inrGeoBannerSplitTestName] = inrGeoBannerVariant @@ -134,6 +151,7 @@ async function plansPage(req, res) { initialLocalizedGroupPrice: SubscriptionHelper.generateInitialLocalizedGroupPrice(currency), showInrGeoBanner, + annualTrialsAssignment: annualTrialsAssignment?.variant, }) } @@ -320,6 +338,23 @@ async function interstitialPaymentPage(req, res) { ) } } + + // annual plans with the free trial option split test - nudge variant + let annualTrialsAssignment = { variant: 'default' } + + try { + annualTrialsAssignment = await SplitTestHandler.promises.getAssignment( + req, + res, + 'annual-trials' + ) + } catch (error) { + logger.error( + { err: error }, + 'failed to get "annualTrialsAssignment" split test assignment' + ) + } + const paywallPlansPageViewSegmentation = { currency: recommendedCurrency, countryCode, @@ -331,6 +366,7 @@ async function interstitialPaymentPage(req, res) { ) ? 'latam' : 'default', + 'annual-trials': annualTrialsAssignment?.variant, } if (inrGeoBannerSplitTestName) { paywallPlansPageViewSegmentation[inrGeoBannerSplitTestName] = @@ -342,16 +378,23 @@ async function interstitialPaymentPage(req, res) { paywallPlansPageViewSegmentation ) - res.render('subscriptions/interstitial-payment', { - title: 'subscribe', - itm_content: req.query?.itm_content, - itm_campaign: req.query?.itm_campaign, - itm_referrer: req.query?.itm_referrer, - recommendedCurrency, - interstitialPaymentConfig, - showSkipLink, - showInrGeoBanner, - }) + res.render( + annualTrialsAssignment?.variant == 'nudge' + ? 'subscriptions/interstitial-payment_nudge_annual' + : annualTrialsAssignment?.variant == 'no-nudge' + ? 'subscriptions/interstitial-payment_no_nudge_monthly' + : 'subscriptions/interstitial-payment', + { + title: 'subscribe', + itm_content: req.query?.itm_content, + itm_campaign: req.query?.itm_campaign, + itm_referrer: req.query?.itm_referrer, + recommendedCurrency, + interstitialPaymentConfig, + showSkipLink, + showInrGeoBanner, + } + ) } }