add LLM channel logic
This commit is contained in:
@@ -180,6 +180,7 @@
|
||||
"links": "Links",
|
||||
"location": "Location",
|
||||
"login": "Login",
|
||||
"llm": "LLM",
|
||||
"logout": "Logout",
|
||||
"manage": "Manage",
|
||||
"manager": "Manager",
|
||||
|
||||
@@ -307,6 +307,7 @@ export const labels: Record<string, string> = {
|
||||
affiliate: 'label.affiliate',
|
||||
email: 'label.email',
|
||||
sms: 'label.sms',
|
||||
llm: 'label.llm',
|
||||
organicSearch: 'label.organic-search',
|
||||
organicSocial: 'label.organic-social',
|
||||
organicShopping: 'label.organic-shopping',
|
||||
|
||||
@@ -326,16 +326,23 @@ export const SOCIAL_DOMAINS = [
|
||||
export const SEARCH_DOMAINS = [
|
||||
'baidu.com',
|
||||
'bing.com',
|
||||
'chatgpt.com',
|
||||
'duckduckgo.com',
|
||||
'ecosia.org',
|
||||
'google.',
|
||||
'msn.com',
|
||||
'perplexity.ai',
|
||||
'search.brave.com',
|
||||
'yandex.',
|
||||
];
|
||||
|
||||
export const LLM_DOMAINS = [
|
||||
'chatgpt.com',
|
||||
'claude.ai',
|
||||
'copilot.microsoft.com',
|
||||
'gemini.google.com',
|
||||
'meta.ai',
|
||||
'perplexity.ai',
|
||||
];
|
||||
|
||||
export const SHOPPING_DOMAINS = [
|
||||
'alibaba.com',
|
||||
'aliexpress.com',
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import clickhouse from '@/lib/clickhouse';
|
||||
import {
|
||||
EMAIL_DOMAINS,
|
||||
LLM_DOMAINS,
|
||||
PAID_AD_PARAMS,
|
||||
SEARCH_DOMAINS,
|
||||
SHOPPING_DOMAINS,
|
||||
@@ -88,6 +89,7 @@ async function relationalQuery(
|
||||
when ${toPostgresPositionClause('utm_medium', ['referral', 'app', 'link'])} then 'referral'
|
||||
when utm_medium ilike '%affiliate%' then 'affiliate'
|
||||
when utm_medium ilike '%sms%' or utm_source ilike '%sms%' then 'sms'
|
||||
when ${toPostgresPositionClause('referrer_domain', LLM_DOMAINS)} then 'llm'
|
||||
when ${toPostgresPositionClause('referrer_domain', SEARCH_DOMAINS)} or utm_medium ilike '%organic%' then concat(prefix, 'Search')
|
||||
when ${toPostgresPositionClause('referrer_domain', SOCIAL_DOMAINS)} then concat(prefix, 'Social')
|
||||
when ${toPostgresPositionClause('referrer_domain', EMAIL_DOMAINS)} or utm_medium ilike '%mail%' then 'email'
|
||||
@@ -149,6 +151,9 @@ async function clickhouseQuery(
|
||||
when multiSearchAny(lower(utm_medium), ['referral', 'app','link']) != 0 then 'referral'
|
||||
when position(lower(utm_medium), 'affiliate') > 0 then 'affiliate'
|
||||
when position(lower(utm_medium), 'sms') > 0 or position(lower(utm_source), 'sms') > 0 then 'sms'
|
||||
when multiSearchAny(lower(referrer_domain), [${toClickHouseStringArray(
|
||||
LLM_DOMAINS,
|
||||
)}]) != 0 then 'llm'
|
||||
when multiSearchAny(lower(referrer_domain), [${toClickHouseStringArray(
|
||||
SEARCH_DOMAINS,
|
||||
)}]) != 0 or position(lower(utm_medium), 'organic') > 0 then concat(prefix, 'Search')
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import clickhouse from '@/lib/clickhouse';
|
||||
import {
|
||||
EMAIL_DOMAINS,
|
||||
LLM_DOMAINS,
|
||||
PAID_AD_PARAMS,
|
||||
SEARCH_DOMAINS,
|
||||
SHOPPING_DOMAINS,
|
||||
@@ -57,6 +58,7 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) {
|
||||
when ${toPostgresLikeClause('utm_medium', ['referral', 'app', 'link'])} then 'referral'
|
||||
when utm_medium ilike '%affiliate%' then 'affiliate'
|
||||
when utm_medium ilike '%sms%' or utm_source ilike '%sms%' then 'sms'
|
||||
when ${toPostgresLikeClause('referrer_domain', LLM_DOMAINS)} then 'llm'
|
||||
when ${toPostgresLikeClause('referrer_domain', SEARCH_DOMAINS)} or utm_medium ilike '%organic%' then concat(prefix, 'Search')
|
||||
when ${toPostgresLikeClause('referrer_domain', SOCIAL_DOMAINS)} then concat(prefix, 'Social')
|
||||
when ${toPostgresLikeClause('referrer_domain', EMAIL_DOMAINS)} or utm_medium ilike '%mail%' then 'email'
|
||||
@@ -102,6 +104,9 @@ async function clickhouseQuery(
|
||||
when multiSearchAny(lower(utm_medium), ['referral', 'app','link']) != 0 then 'referral'
|
||||
when position(lower(utm_medium), 'affiliate') > 0 then 'affiliate'
|
||||
when position(lower(utm_medium), 'sms') > 0 or position(lower(utm_source), 'sms') > 0 then 'sms'
|
||||
when multiSearchAny(lower(referrer_domain), [${toClickHouseStringArray(
|
||||
LLM_DOMAINS,
|
||||
)}]) != 0 then 'llm'
|
||||
when multiSearchAny(lower(referrer_domain), [${toClickHouseStringArray(
|
||||
SEARCH_DOMAINS,
|
||||
)}]) != 0 or position(lower(utm_medium), 'organic') > 0 then concat(prefix, 'Search')
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import clickhouse from '@/lib/clickhouse';
|
||||
import {
|
||||
EMAIL_DOMAINS,
|
||||
LLM_DOMAINS,
|
||||
PAID_AD_PARAMS,
|
||||
SEARCH_DOMAINS,
|
||||
SHOPPING_DOMAINS,
|
||||
@@ -210,6 +211,7 @@ async function relationalQuery(
|
||||
when ${toPostgresLikeClause('utm_medium', ['referral', 'app', 'link'])} then 'referral'
|
||||
when utm_medium ilike '%affiliate%' then 'affiliate'
|
||||
when utm_medium ilike '%sms%' or utm_source ilike '%sms%' then 'sms'
|
||||
when ${toPostgresLikeClause('referrer_domain', LLM_DOMAINS)} then 'llm'
|
||||
when ${toPostgresLikeClause('referrer_domain', SEARCH_DOMAINS)} or utm_medium ilike '%organic%' then concat(prefix, 'Search')
|
||||
when ${toPostgresLikeClause('referrer_domain', SOCIAL_DOMAINS)} then concat(prefix, 'Social')
|
||||
when ${toPostgresLikeClause('referrer_domain', EMAIL_DOMAINS)} or utm_medium ilike '%mail%' then 'email'
|
||||
@@ -402,6 +404,9 @@ async function clickhouseQuery(
|
||||
when multiSearchAny(lower(utm_medium), ['referral', 'app','link']) != 0 then 'referral'
|
||||
when position(lower(utm_medium), 'affiliate') > 0 then 'affiliate'
|
||||
when position(lower(utm_medium), 'sms') > 0 or position(lower(utm_source), 'sms') > 0 then 'sms'
|
||||
when multiSearchAny(lower(referrer_domain), [${toClickHouseStringArray(
|
||||
LLM_DOMAINS,
|
||||
)}]) != 0 then 'llm'
|
||||
when multiSearchAny(lower(referrer_domain), [${toClickHouseStringArray(
|
||||
SEARCH_DOMAINS,
|
||||
)}]) != 0 or position(lower(utm_medium), 'organic') > 0 then concat(prefix, 'Search')
|
||||
|
||||
Reference in New Issue
Block a user