Skip to content

Commit ae9df23

Browse files
committed
Add ad verification
1 parent 37f406c commit ae9df23

3 files changed

Lines changed: 31 additions & 2 deletions

File tree

src/App.tsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
import { useEffect, useLayoutEffect, useState } from 'react'
22
import { DNDLayout } from 'src/components/Layout'
3-
import { setupAnalytics, setupIdentification, trackPageView } from 'src/lib/analytics'
3+
import {
4+
identifyAdvBlocked,
5+
setupAnalytics,
6+
setupIdentification,
7+
trackPageView,
8+
} from 'src/lib/analytics'
49
import { useUserPreferences } from 'src/stores/preferences'
510
import { AppContentLayout } from './components/Layout'
11+
import { verifyAdvStatus } from './features/adv/utils/status'
612
import { isWebOrExtensionVersion } from './utils/Environment'
713
import { lazyImport } from './utils/lazyImport'
814
const { OnboardingModal } = lazyImport(() => import('src/features/onboarding'), 'OnboardingModal')
@@ -30,6 +36,11 @@ export const App = () => {
3036
document.body.classList.remove('preload')
3137
setupAnalytics()
3238
setupIdentification()
39+
const adVerifier = async () => {
40+
const status = await verifyAdvStatus()
41+
identifyAdvBlocked(status)
42+
}
43+
adVerifier()
3344
}, [])
3445

3546
useEffect(() => {

src/features/adv/utils/status.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
export const verifyAdvStatus = async () => {
2+
try {
3+
const resp = await fetch('https://srv.buysellads.com', {
4+
mode: 'no-cors',
5+
})
6+
await resp.text()
7+
return false
8+
} catch (e) {
9+
return true
10+
}
11+
}

src/lib/analytics.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ export enum Attributes {
6969
MAX_VISIBLE_CARDS = 'Max Visible Cards',
7070
DURATION = 'Duration',
7171
PROVIDER = 'Provider',
72+
ADV = 'ADV',
7273
}
7374

7475
const _SEP_ = ' '
@@ -405,6 +406,9 @@ export const identifyUserOccupation = (occupation: string) => {
405406
export const identifyUserMaxVisibleCards = (maxVisibleCards: number) => {
406407
identifyUserProperty(Attributes.MAX_VISIBLE_CARDS, maxVisibleCards)
407408
}
409+
export const identifyAdvBlocked = (blocked: boolean) => {
410+
identifyUserProperty(Attributes.ADV, blocked)
411+
}
408412

409413
// Private functions
410414
type trackEventProps = {
@@ -452,7 +456,10 @@ const trackEvent = ({ object, verb, attributes }: trackEventProps) => {
452456
}
453457
}
454458

455-
const identifyUserProperty = (attributes: Attributes, value: string | number | string[]) => {
459+
const identifyUserProperty = (
460+
attributes: Attributes,
461+
value: string | number | string[] | boolean
462+
) => {
456463
try {
457464
let formatedValue
458465
if (Array.isArray(value)) {

0 commit comments

Comments
 (0)