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

View File

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

View File

@ -40,7 +40,7 @@ export default async (req, res) => {
const endDate = new Date(+end_at); const endDate = new Date(+end_at);
if (sessionColumns.includes(type)) { 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') { if (type === 'language') {
let combined = {}; let combined = {};