Merge pull request #1080 from HolgerHuo/fix-referrer-issue

Fix referrer filter issue
pull/1091/head
Mike Cao 2022-04-08 21:43:54 -07:00 committed by GitHub
commit e7602b58f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 6 deletions

View File

@ -18,7 +18,7 @@ export default function MetricsBar({ websiteId, className }) {
const { startDate, endDate, modified } = dateRange;
const [format, setFormat] = useState(true);
const {
query: { url, ref },
query: { url, referrer },
} = usePageQuery();
const { data, error, loading } = useFetch(
@ -28,11 +28,11 @@ export default function MetricsBar({ websiteId, className }) {
start_at: +startDate,
end_at: +endDate,
url,
ref,
referrer,
},
headers: { [TOKEN_HEADER]: shareToken?.token },
},
[modified, url, ref],
[modified, url, referrer],
);
const formatFunc = format

View File

@ -424,15 +424,21 @@ export function getPageviewStats(
export function getSessionMetrics(website_id, start_at, end_at, field, filters = {}) {
const params = [website_id, start_at, end_at];
const { url } = filters;
const { url, referrer } = filters;
let urlFilter = '';
let refFilter = '';
if (url) {
urlFilter = `and url=$${params.length + 1}`;
params.push(decodeURIComponent(url));
}
if (referrer) {
refFilter = `and referrer like $${params.length + 1}`;
params.push(`%${decodeURIComponent(referrer)}%`);
}
return rawQuery(
`
select ${field} x, count(*) y
@ -443,6 +449,7 @@ export function getSessionMetrics(website_id, start_at, end_at, field, filters =
where website_id=$1
and created_at between $2 and $3
${urlFilter}
${refFilter}
)
group by 1
order by 2 desc
@ -469,7 +476,7 @@ export function getPageviewMetrics(website_id, start_at, end_at, field, table, f
params.push(decodeURIComponent(url));
}
if (referrer) {
if (referrer && table !== 'event') {
refFilter = `and referrer like $${params.length + 1}`;
params.push(`%${decodeURIComponent(referrer)}%`);
}

View File

@ -40,7 +40,7 @@ export default async (req, res) => {
const endDate = new Date(+end_at);
if (sessionColumns.includes(type)) {
let data = await getSessionMetrics(websiteId, startDate, endDate, type, { url });
let data = await getSessionMetrics(websiteId, startDate, endDate, type, { url, referrer });
if (type === 'language') {
let combined = {};