mirror of
https://github.com/umami-software/umami.git
synced 2025-12-08 05:12:36 +01:00
update send and saveEvent with utm/clickIds
This commit is contained in:
parent
e51ec70093
commit
7ffb3f7b52
2 changed files with 103 additions and 0 deletions
|
|
@ -146,6 +146,21 @@ export async function POST(request: Request) {
|
||||||
const urlQuery = currentUrl.search.substring(1);
|
const urlQuery = currentUrl.search.substring(1);
|
||||||
const urlDomain = currentUrl.hostname.replace(/^www./, '');
|
const urlDomain = currentUrl.hostname.replace(/^www./, '');
|
||||||
|
|
||||||
|
// UTM Params
|
||||||
|
const utmSource = currentUrl.searchParams.get('utm_source');
|
||||||
|
const utmMedium = currentUrl.searchParams.get('utm_medium');
|
||||||
|
const utmCampaign = currentUrl.searchParams.get('utm_campaign');
|
||||||
|
const utmContent = currentUrl.searchParams.get('utm_content');
|
||||||
|
const utmTerm = currentUrl.searchParams.get('utm_term');
|
||||||
|
|
||||||
|
// Click IDs
|
||||||
|
const gclid = currentUrl.searchParams.get('gclid');
|
||||||
|
const fbclid = currentUrl.searchParams.get('fbclid');
|
||||||
|
const msclkid = currentUrl.searchParams.get('msclkid');
|
||||||
|
const ttclid = currentUrl.searchParams.get('ttclid');
|
||||||
|
const lifatid = currentUrl.searchParams.get('li_fat_id');
|
||||||
|
const twclid = currentUrl.searchParams.get('twclid');
|
||||||
|
|
||||||
if (process.env.REMOVE_TRAILING_SLASH) {
|
if (process.env.REMOVE_TRAILING_SLASH) {
|
||||||
urlPath = urlPath.replace(/(.+)\/$/, '$1');
|
urlPath = urlPath.replace(/(.+)\/$/, '$1');
|
||||||
}
|
}
|
||||||
|
|
@ -171,10 +186,21 @@ export async function POST(request: Request) {
|
||||||
visitId,
|
visitId,
|
||||||
urlPath: safeDecodeURI(urlPath),
|
urlPath: safeDecodeURI(urlPath),
|
||||||
urlQuery,
|
urlQuery,
|
||||||
|
utmSource,
|
||||||
|
utmMedium,
|
||||||
|
utmCampaign,
|
||||||
|
utmContent,
|
||||||
|
utmTerm,
|
||||||
referrerPath: safeDecodeURI(referrerPath),
|
referrerPath: safeDecodeURI(referrerPath),
|
||||||
referrerQuery,
|
referrerQuery,
|
||||||
referrerDomain,
|
referrerDomain,
|
||||||
pageTitle: safeDecodeURIComponent(title),
|
pageTitle: safeDecodeURIComponent(title),
|
||||||
|
gclid,
|
||||||
|
fbclid,
|
||||||
|
msclkid,
|
||||||
|
ttclid,
|
||||||
|
lifatid,
|
||||||
|
twclid,
|
||||||
eventName: name,
|
eventName: name,
|
||||||
eventData: data,
|
eventData: data,
|
||||||
hostname: hostname || urlDomain,
|
hostname: hostname || urlDomain,
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,21 @@ export async function saveEvent(args: {
|
||||||
visitId: string;
|
visitId: string;
|
||||||
urlPath: string;
|
urlPath: string;
|
||||||
urlQuery?: string;
|
urlQuery?: string;
|
||||||
|
utmSource?: string;
|
||||||
|
utmMedium?: string;
|
||||||
|
utmCampaign?: string;
|
||||||
|
utmContent?: string;
|
||||||
|
utmTerm?: string;
|
||||||
referrerPath?: string;
|
referrerPath?: string;
|
||||||
referrerQuery?: string;
|
referrerQuery?: string;
|
||||||
referrerDomain?: string;
|
referrerDomain?: string;
|
||||||
pageTitle?: string;
|
pageTitle?: string;
|
||||||
|
gclid?: string;
|
||||||
|
fbclid?: string;
|
||||||
|
msclkid?: string;
|
||||||
|
ttclid?: string;
|
||||||
|
lifatid?: string;
|
||||||
|
twclid?: string;
|
||||||
eventName?: string;
|
eventName?: string;
|
||||||
eventData?: any;
|
eventData?: any;
|
||||||
hostname?: string;
|
hostname?: string;
|
||||||
|
|
@ -43,9 +54,20 @@ async function relationalQuery(data: {
|
||||||
visitId: string;
|
visitId: string;
|
||||||
urlPath: string;
|
urlPath: string;
|
||||||
urlQuery?: string;
|
urlQuery?: string;
|
||||||
|
utmSource?: string;
|
||||||
|
utmMedium?: string;
|
||||||
|
utmCampaign?: string;
|
||||||
|
utmContent?: string;
|
||||||
|
utmTerm?: string;
|
||||||
referrerPath?: string;
|
referrerPath?: string;
|
||||||
referrerQuery?: string;
|
referrerQuery?: string;
|
||||||
referrerDomain?: string;
|
referrerDomain?: string;
|
||||||
|
gclid?: string;
|
||||||
|
fbclid?: string;
|
||||||
|
msclkid?: string;
|
||||||
|
ttclid?: string;
|
||||||
|
lifatid?: string;
|
||||||
|
twclid?: string;
|
||||||
pageTitle?: string;
|
pageTitle?: string;
|
||||||
eventName?: string;
|
eventName?: string;
|
||||||
eventData?: any;
|
eventData?: any;
|
||||||
|
|
@ -58,12 +80,23 @@ async function relationalQuery(data: {
|
||||||
visitId,
|
visitId,
|
||||||
urlPath,
|
urlPath,
|
||||||
urlQuery,
|
urlQuery,
|
||||||
|
utmSource,
|
||||||
|
utmMedium,
|
||||||
|
utmCampaign,
|
||||||
|
utmContent,
|
||||||
|
utmTerm,
|
||||||
referrerPath,
|
referrerPath,
|
||||||
referrerQuery,
|
referrerQuery,
|
||||||
referrerDomain,
|
referrerDomain,
|
||||||
eventName,
|
eventName,
|
||||||
eventData,
|
eventData,
|
||||||
pageTitle,
|
pageTitle,
|
||||||
|
gclid,
|
||||||
|
fbclid,
|
||||||
|
msclkid,
|
||||||
|
ttclid,
|
||||||
|
lifatid,
|
||||||
|
twclid,
|
||||||
tag,
|
tag,
|
||||||
createdAt,
|
createdAt,
|
||||||
} = data;
|
} = data;
|
||||||
|
|
@ -77,10 +110,21 @@ async function relationalQuery(data: {
|
||||||
visitId,
|
visitId,
|
||||||
urlPath: urlPath?.substring(0, URL_LENGTH),
|
urlPath: urlPath?.substring(0, URL_LENGTH),
|
||||||
urlQuery: urlQuery?.substring(0, URL_LENGTH),
|
urlQuery: urlQuery?.substring(0, URL_LENGTH),
|
||||||
|
utmSource,
|
||||||
|
utmMedium,
|
||||||
|
utmCampaign,
|
||||||
|
utmContent,
|
||||||
|
utmTerm,
|
||||||
referrerPath: referrerPath?.substring(0, URL_LENGTH),
|
referrerPath: referrerPath?.substring(0, URL_LENGTH),
|
||||||
referrerQuery: referrerQuery?.substring(0, URL_LENGTH),
|
referrerQuery: referrerQuery?.substring(0, URL_LENGTH),
|
||||||
referrerDomain: referrerDomain?.substring(0, URL_LENGTH),
|
referrerDomain: referrerDomain?.substring(0, URL_LENGTH),
|
||||||
pageTitle: pageTitle?.substring(0, PAGE_TITLE_LENGTH),
|
pageTitle: pageTitle?.substring(0, PAGE_TITLE_LENGTH),
|
||||||
|
gclid,
|
||||||
|
fbclid,
|
||||||
|
msclkid,
|
||||||
|
ttclid,
|
||||||
|
lifatid,
|
||||||
|
twclid,
|
||||||
eventType: eventName ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView,
|
eventType: eventName ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView,
|
||||||
eventName: eventName ? eventName?.substring(0, EVENT_NAME_LENGTH) : null,
|
eventName: eventName ? eventName?.substring(0, EVENT_NAME_LENGTH) : null,
|
||||||
tag,
|
tag,
|
||||||
|
|
@ -109,10 +153,21 @@ async function clickhouseQuery(data: {
|
||||||
visitId: string;
|
visitId: string;
|
||||||
urlPath: string;
|
urlPath: string;
|
||||||
urlQuery?: string;
|
urlQuery?: string;
|
||||||
|
utmSource?: string;
|
||||||
|
utmMedium?: string;
|
||||||
|
utmCampaign?: string;
|
||||||
|
utmContent?: string;
|
||||||
|
utmTerm?: string;
|
||||||
referrerPath?: string;
|
referrerPath?: string;
|
||||||
referrerQuery?: string;
|
referrerQuery?: string;
|
||||||
referrerDomain?: string;
|
referrerDomain?: string;
|
||||||
pageTitle?: string;
|
pageTitle?: string;
|
||||||
|
gclid?: string;
|
||||||
|
fbclid?: string;
|
||||||
|
msclkid?: string;
|
||||||
|
ttclid?: string;
|
||||||
|
lifatid?: string;
|
||||||
|
twclid?: string;
|
||||||
eventName?: string;
|
eventName?: string;
|
||||||
eventData?: any;
|
eventData?: any;
|
||||||
hostname?: string;
|
hostname?: string;
|
||||||
|
|
@ -134,9 +189,20 @@ async function clickhouseQuery(data: {
|
||||||
visitId,
|
visitId,
|
||||||
urlPath,
|
urlPath,
|
||||||
urlQuery,
|
urlQuery,
|
||||||
|
utmSource,
|
||||||
|
utmMedium,
|
||||||
|
utmCampaign,
|
||||||
|
utmContent,
|
||||||
|
utmTerm,
|
||||||
referrerPath,
|
referrerPath,
|
||||||
referrerQuery,
|
referrerQuery,
|
||||||
referrerDomain,
|
referrerDomain,
|
||||||
|
gclid,
|
||||||
|
fbclid,
|
||||||
|
msclkid,
|
||||||
|
ttclid,
|
||||||
|
lifatid,
|
||||||
|
twclid,
|
||||||
pageTitle,
|
pageTitle,
|
||||||
eventName,
|
eventName,
|
||||||
eventData,
|
eventData,
|
||||||
|
|
@ -169,10 +235,21 @@ async function clickhouseQuery(data: {
|
||||||
city: city,
|
city: city,
|
||||||
url_path: urlPath?.substring(0, URL_LENGTH),
|
url_path: urlPath?.substring(0, URL_LENGTH),
|
||||||
url_query: urlQuery?.substring(0, URL_LENGTH),
|
url_query: urlQuery?.substring(0, URL_LENGTH),
|
||||||
|
utm_source: utmSource,
|
||||||
|
utm_medium: utmMedium,
|
||||||
|
utm_campaign: utmCampaign,
|
||||||
|
utm_content: utmContent,
|
||||||
|
utm_term: utmTerm,
|
||||||
referrer_path: referrerPath?.substring(0, URL_LENGTH),
|
referrer_path: referrerPath?.substring(0, URL_LENGTH),
|
||||||
referrer_query: referrerQuery?.substring(0, URL_LENGTH),
|
referrer_query: referrerQuery?.substring(0, URL_LENGTH),
|
||||||
referrer_domain: referrerDomain?.substring(0, URL_LENGTH),
|
referrer_domain: referrerDomain?.substring(0, URL_LENGTH),
|
||||||
page_title: pageTitle?.substring(0, PAGE_TITLE_LENGTH),
|
page_title: pageTitle?.substring(0, PAGE_TITLE_LENGTH),
|
||||||
|
gclid: gclid,
|
||||||
|
fbclid: fbclid,
|
||||||
|
msclkid: msclkid,
|
||||||
|
ttclid: ttclid,
|
||||||
|
li_fat_id: lifatid,
|
||||||
|
twclid: twclid,
|
||||||
event_type: eventName ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView,
|
event_type: eventName ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView,
|
||||||
event_name: eventName ? eventName?.substring(0, EVENT_NAME_LENGTH) : null,
|
event_name: eventName ? eventName?.substring(0, EVENT_NAME_LENGTH) : null,
|
||||||
tag: tag,
|
tag: tag,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue