mirror of
https://github.com/umami-software/umami.git
synced 2026-02-04 12:47:13 +01:00
Referrer filtering.
This commit is contained in:
parent
65d4094095
commit
ebd52335bb
15 changed files with 158 additions and 54 deletions
|
|
@ -95,9 +95,7 @@ export const refFilter = (data, { domain, domainOnly, raw }) => {
|
|||
|
||||
const url = cleanUrl(x);
|
||||
|
||||
if (!domainOnly && !raw) {
|
||||
links[url] = x;
|
||||
}
|
||||
links[url] = x;
|
||||
|
||||
if (url) {
|
||||
if (!obj[url]) {
|
||||
|
|
|
|||
|
|
@ -318,14 +318,20 @@ export async function getEvents(websites, start_at) {
|
|||
|
||||
export function getWebsiteStats(website_id, start_at, end_at, filters = {}) {
|
||||
const params = [website_id, start_at, end_at];
|
||||
const { url } = filters;
|
||||
const { url, ref } = filters;
|
||||
let urlFilter = '';
|
||||
let refFilter = '';
|
||||
|
||||
if (url) {
|
||||
urlFilter = `and url=$${params.length + 1}`;
|
||||
params.push(decodeURIComponent(url));
|
||||
}
|
||||
|
||||
if (ref) {
|
||||
refFilter = `and referrer like $${params.length + 1}`;
|
||||
params.push(`%${decodeURIComponent(ref)}%`);
|
||||
}
|
||||
|
||||
return rawQuery(
|
||||
`
|
||||
select sum(t.c) as "pageviews",
|
||||
|
|
@ -341,6 +347,7 @@ export function getWebsiteStats(website_id, start_at, end_at, filters = {}) {
|
|||
where website_id=$1
|
||||
and created_at between $2 and $3
|
||||
${urlFilter}
|
||||
${refFilter}
|
||||
group by 1, 2
|
||||
) t
|
||||
`,
|
||||
|
|
@ -355,16 +362,24 @@ export function getPageviewStats(
|
|||
timezone = 'utc',
|
||||
unit = 'day',
|
||||
count = '*',
|
||||
url,
|
||||
filters = {},
|
||||
) {
|
||||
const params = [website_id, start_at, end_at];
|
||||
const { url, ref } = filters;
|
||||
|
||||
let urlFilter = '';
|
||||
let refFilter = '';
|
||||
|
||||
if (url) {
|
||||
urlFilter = `and url=$${params.length + 1}`;
|
||||
params.push(decodeURIComponent(url));
|
||||
}
|
||||
|
||||
if (ref) {
|
||||
refFilter = `and referrer like $${params.length + 1}`;
|
||||
params.push(`%${decodeURIComponent(ref)}%`);
|
||||
}
|
||||
|
||||
return rawQuery(
|
||||
`
|
||||
select ${getDateQuery('created_at', unit, timezone)} t,
|
||||
|
|
@ -373,6 +388,7 @@ export function getPageviewStats(
|
|||
where website_id=$1
|
||||
and created_at between $2 and $3
|
||||
${urlFilter}
|
||||
${refFilter}
|
||||
group by 1
|
||||
order by 1
|
||||
`,
|
||||
|
|
@ -411,7 +427,7 @@ export function getSessionMetrics(website_id, start_at, end_at, field, filters =
|
|||
|
||||
export function getPageviewMetrics(website_id, start_at, end_at, field, table, filters = {}) {
|
||||
const params = [website_id, start_at, end_at];
|
||||
const { domain, url } = filters;
|
||||
const { domain, url, ref } = filters;
|
||||
|
||||
let domainFilter = '';
|
||||
let urlFilter = '';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue