Add unload event to the tracking script

This commit is contained in:
Uku Taht 2019-12-18 16:05:30 +08:00
parent f7d752988a
commit ddac5685a2
4 changed files with 19 additions and 0 deletions

View File

@ -101,8 +101,14 @@
}
function onUnload() {
var userData = getUserData()
navigator.sendBeacon(plausibleHost + '/api/unload', JSON.stringify({uid: userData.uid}));
}
function page(options) {
trigger('pageview', options)
window.addEventListener('unload', onUnload, false);
}
function trackPushState() {

View File

@ -100,8 +100,14 @@
}
function onUnload() {
var userData = getUserData()
navigator.sendBeacon(plausibleHost + '/api/unload', JSON.stringify({uid: userData.uid}));
}
function page() {
trigger('pageview')
window.addEventListener('unload', onUnload, false);
}
var his = window.history

View File

@ -19,6 +19,12 @@ defmodule PlausibleWeb.Api.ExternalController do
end
end
def unload(conn, _params) do
params = parse_body(conn)
Plausible.Ingest.Session.on_unload(params["uid"], Timex.now())
conn |> send_resp(202, "")
end
def error(conn, _params) do
request = Sentry.Plug.build_request_interface_data(conn, [])
Sentry.capture_message("JS snippet error", request: request)

View File

@ -50,6 +50,7 @@ defmodule PlausibleWeb.Router do
pipe_through :api
post "/event", Api.ExternalController, :event
post "/unload", Api.ExternalController, :unload
get "/error", Api.ExternalController, :error
post "/paddle/webhook", Api.PaddleController, :webhook