add `document.referrer` to statsig custom (#4509)

* add referrer to statsig custom

dont include referrer if hostname is bsky.app

save

add `document.referrer` to statsig custom

* add a hostname field

* account for ssr

* account for ssr
zio/stable
Hailey 2024-06-13 14:31:19 -07:00 committed by GitHub
parent d20c59e19d
commit d9066a6beb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 14 additions and 0 deletions

View File

@ -26,6 +26,8 @@ type StatsigUser = {
bundleDate: number bundleDate: number
refSrc: string refSrc: string
refUrl: string refUrl: string
referrer: string
referrerHostname: string
appLanguage: string appLanguage: string
contentLanguages: string[] contentLanguages: string[]
} }
@ -33,12 +35,22 @@ type StatsigUser = {
let refSrc = '' let refSrc = ''
let refUrl = '' let refUrl = ''
let referrer = ''
let referrerHostname = ''
if (isWeb && typeof window !== 'undefined') { if (isWeb && typeof window !== 'undefined') {
const params = new URLSearchParams(window.location.search) const params = new URLSearchParams(window.location.search)
refSrc = params.get('ref_src') ?? '' refSrc = params.get('ref_src') ?? ''
refUrl = decodeURIComponent(params.get('ref_url') ?? '') refUrl = decodeURIComponent(params.get('ref_url') ?? '')
} }
if (isWeb && typeof document !== 'undefined' && document != null) {
const url = new URL(document.referrer)
if (url.hostname !== 'bsky.app') {
referrer = document.referrer
referrerHostname = url.hostname
}
}
export type {LogEvents} export type {LogEvents}
function createStatsigOptions(prefetchUsers: StatsigUser[]) { function createStatsigOptions(prefetchUsers: StatsigUser[]) {
@ -198,6 +210,8 @@ function toStatsigUser(did: string | undefined): StatsigUser {
custom: { custom: {
refSrc, refSrc,
refUrl, refUrl,
referrer,
referrerHostname,
platform: Platform.OS as 'ios' | 'android' | 'web', platform: Platform.OS as 'ios' | 'android' | 'web',
bundleIdentifier: BUNDLE_IDENTIFIER, bundleIdentifier: BUNDLE_IDENTIFIER,
bundleDate: BUNDLE_DATE, bundleDate: BUNDLE_DATE,