optimize attribution report

This commit is contained in:
Francis Cao 2025-04-15 15:58:49 -07:00
parent b97a790acd
commit 5280fb4310
2 changed files with 28 additions and 20 deletions

View file

@ -1,10 +1,11 @@
import Funnel from '@/assets/funnel.svg';
import Money from '@/assets/money.svg';
import Lightbulb from '@/assets/lightbulb.svg';
import Magnet from '@/assets/magnet.svg';
import Money from '@/assets/money.svg';
import Path from '@/assets/path.svg';
import Tag from '@/assets/tag.svg';
import Target from '@/assets/target.svg';
import Network from '@/assets/network.svg';
import { useMessages, useTeamUrl } from '@/components/hooks';
import PageHeader from '@/components/layout/PageHeader';
import Link from 'next/link';
@ -58,12 +59,12 @@ export function ReportTemplates({ showHeader = true }: { showHeader?: boolean })
url: renderTeamUrl('/reports/revenue'),
icon: <Money />,
},
// {
// title: formatMessage(labels.attribution),
// description: formatMessage(labels.attributionDescription),
// url: renderTeamUrl('/reports/attribution'),
// icon: <Network />,
// },
{
title: formatMessage(labels.attribution),
description: formatMessage(labels.attributionDescription),
url: renderTeamUrl('/reports/attribution'),
icon: <Network />,
},
];
return (

View file

@ -261,13 +261,14 @@ async function clickhouseQuery(
select
we.${utmColumn} name,
${currency ? 'sum(e.value)' : 'uniqExact(we.session_id)'} value
from events e
join model m
on m.session_id = e.session_id
from model m
join website_event we
on we.created_at = m.created_at
and we.session_id = m.session_id
${currency ? '' : `where we.${utmColumn} != ''`}
${currency ? 'join events e on e.session_id = m.session_id' : ''}
where we.website_id = {websiteId:UUID}
and we.created_at between {startDate:DateTime64} and {endDate:DateTime64}
${currency ? '' : `and we.${utmColumn} != ''`}
group by 1
order by 2 desc
limit 20`;
@ -311,6 +312,8 @@ async function clickhouseQuery(
from events e
join website_event we
on we.session_id = e.session_id
where we.website_id = {websiteId:UUID}
and we.created_at between {startDate:DateTime64} and {endDate:DateTime64}
group by e.session_id)`
: `\n
model AS (select e.session_id,
@ -318,7 +321,9 @@ async function clickhouseQuery(
from events e
join website_event we
on we.session_id = e.session_id
where we.created_at < e.max_dt
where we.website_id = {websiteId:UUID}
and we.created_at between {startDate:DateTime64} and {endDate:DateTime64}
and we.created_at < e.max_dt
group by e.session_id)`;
}
@ -333,16 +338,17 @@ async function clickhouseQuery(
${getModelQuery(model)}
select we.referrer_domain name,
${currency ? 'sum(e.value)' : 'uniqExact(we.session_id)'} value
from events e
join model m
on m.session_id = e.session_id
from model m
join website_event we
on we.created_at = m.created_at
and we.session_id = m.session_id
${currency ? 'join events e on e.session_id = m.session_id' : ''}
where we.website_id = {websiteId:UUID}
and we.created_at between {startDate:DateTime64} and {endDate:DateTime64}
${
currency
? ''
: `where referrer_domain != hostname
: `and we.referrer_domain != hostname
and we.referrer_domain != ''`
}
group by 1
@ -368,13 +374,14 @@ async function clickhouseQuery(
li_fat_id != '', ' LinkedIn Ads',
twclid != '', 'Twitter Ads (X)','') name,
${currency ? 'sum(e.value)' : 'uniqExact(we.session_id)'} value
from events e
join model m
on m.session_id = e.session_id
from model m
join website_event we
on we.created_at = m.created_at
and we.session_id = m.session_id
${currency ? '' : `WHERE name != ''`}
${currency ? 'join events e on e.session_id = m.session_id' : ''}
where we.website_id = {websiteId:UUID}
and we.created_at between {startDate:DateTime64} and {endDate:DateTime64}
${currency ? '' : `and name != ''`}
group by 1
order by 2 desc
limit 20