From fc00e9cef883bcf5d7317d6b7e217e0a90bf4f4d Mon Sep 17 00:00:00 2001 From: ernstmul Date: Mon, 4 Nov 2024 12:26:44 +0100 Subject: [PATCH] Add the referrer and utm source to the contact form submissions --- src/lib/utils/utm.ts | 14 ++++++++++++++ src/routes/+layout.svelte | 6 ++++++ src/routes/contact-us/+page.svelte | 4 +++- src/routes/contact-us/enterprise/+page.svelte | 12 +++++------- .../integrations/technology-partner/+page.svelte | 4 +++- src/routes/oss-program/+page.svelte | 4 +++- src/routes/startups/+page.svelte | 8 +++++--- 7 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 src/lib/utils/utm.ts diff --git a/src/lib/utils/utm.ts b/src/lib/utils/utm.ts new file mode 100644 index 0000000000..e663d782f9 --- /dev/null +++ b/src/lib/utils/utm.ts @@ -0,0 +1,14 @@ +export function getReferrerAndUtmSource() { + if (sessionStorage) { + let values = {}; + if (sessionStorage.getItem('referrer')) { + values = { ...values, referrer: sessionStorage.getItem('referrer') }; + } + if (sessionStorage.getItem('utmSource')) { + values = { ...values, utmSource: sessionStorage.getItem('utmSource') }; + } + + return values; + } + return {}; +} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index e5bb4c1ee6..3dd7ef339e 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -74,6 +74,12 @@ if (ref || referrer || utmSource || utmCampaign || utmMedium) { createSource(ref, referrer, utmSource, utmCampaign, utmMedium); } + if (referrer) { + sessionStorage.setItem('referrer', referrer); + } + if (utmSource) { + sessionStorage.setItem('utmSource', utmSource); + } const initialTheme = $page.route.id?.startsWith('/docs') ? getPreferredTheme() : 'dark'; applyTheme(initialTheme); diff --git a/src/routes/contact-us/+page.svelte b/src/routes/contact-us/+page.svelte index 1359b409ab..dd81fff3ff 100644 --- a/src/routes/contact-us/+page.svelte +++ b/src/routes/contact-us/+page.svelte @@ -5,6 +5,7 @@ import FooterNav from '../../lib/components/FooterNav.svelte'; import MainFooter from '../../lib/components/MainFooter.svelte'; import { socials } from '$lib/constants'; + import { getReferrerAndUtmSource } from '$lib/utils/utm'; let email = ''; let firstName = ''; @@ -24,7 +25,8 @@ email, firstName, subject, - message + message, + ...getReferrerAndUtmSource() }) }); if (response.status >= 400) { diff --git a/src/routes/contact-us/enterprise/+page.svelte b/src/routes/contact-us/enterprise/+page.svelte index 33476f1bd1..6c4897cdfb 100644 --- a/src/routes/contact-us/enterprise/+page.svelte +++ b/src/routes/contact-us/enterprise/+page.svelte @@ -7,6 +7,7 @@ import Pink from '../bg.png'; import { loggedIn, user } from '$lib/utils/console'; import { PUBLIC_GROWTH_ENDPOINT } from '$env/static/public'; + import { getReferrerAndUtmSource } from '$lib/utils/utm'; let email = ''; let name = ''; @@ -36,7 +37,8 @@ companySize, companyWebsite, firstName: name, - message: useCase + message: useCase, + ...getReferrerAndUtmSource() }) }); @@ -77,15 +79,11 @@
-
+
-
+
= 400) { diff --git a/src/routes/oss-program/+page.svelte b/src/routes/oss-program/+page.svelte index 11c2a5d44d..2d4cba94ac 100644 --- a/src/routes/oss-program/+page.svelte +++ b/src/routes/oss-program/+page.svelte @@ -6,6 +6,7 @@ import MainFooter from '../../lib/components/MainFooter.svelte'; import { socials } from '$lib/constants'; import GradientBackground from './bg.png'; + import { getReferrerAndUtmSource } from '$lib/utils/utm'; let personName = ''; let personEmail = ''; @@ -34,7 +35,8 @@ githubUrl, websiteUrl, license, - message + message, + ...getReferrerAndUtmSource() }) }); if (response.status >= 400) { diff --git a/src/routes/startups/+page.svelte b/src/routes/startups/+page.svelte index eb8b323f2d..441b1b0dd8 100644 --- a/src/routes/startups/+page.svelte +++ b/src/routes/startups/+page.svelte @@ -19,6 +19,7 @@ import { PUBLIC_GROWTH_ENDPOINT } from '$env/static/public'; import Faq from './faq.svelte'; + import { getReferrerAndUtmSource } from '$lib/utils/utm'; const title = 'Startups' + TITLE_SUFFIX; const description = DEFAULT_DESCRIPTION; @@ -58,7 +59,8 @@ personName, personEmail, companyName, - companyUrl: companyUrl.startsWith('http') ? companyUrl : `https://${companyUrl}` + companyUrl: companyUrl.startsWith('http') ? companyUrl : `https://${companyUrl}`, + ...getReferrerAndUtmSource() }) }); @@ -187,8 +189,8 @@ class="text-description web-u-max-width-640 e-u-padding-inline-32-desktop mx-auto" > The Appwrite Startups Program supports your startup with a complete - backend for you to build your products. You will receive - $20,000 Cloud credits for Appwrite Scale for 12 months. + backend for you to build your products. You will receive $20,000 Cloud + credits for Appwrite Scale for 12 months.