trackrv0.3.0trackr.casoon.de

Showcase

Each example shows real output produced by trackr itself, from files in the project repository. Input on the left, output on the right.

Pageview through createHandler

examples/output/pageview.jsonDetail: Pageview through createHandler →
{
  "headers": {
    "content-type": "application/json",
    "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15",
    "accept-language": "de-DE,de;q=0.9",
    "x-forwarded-for": "203.0.113.42"
  },
  "body": {
    "type": "pageview",
    "url": "/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=october&email=jane@example.com",
    "referrer": "news.ycombinator.com",
    "utm": {
      "source": "newsletter",
      "medium": "email",
      "campaign": "october"
    },
    "ts": 1791961200000
  }
}
{
  "response": {
    "status": 200,
    "body": "OK"
  },
  "stored": [
    {
      "type": "pageview",
      "url": "/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=october",
      "referrer": "news.ycombinator.com",
      "utm": {
        "source": "newsletter",
        "medium": "email",
        "campaign": "october"
      },
      "ts": 1791961200000,
      "sessionId": "c6c4216a1163582e",
      "device": "desktop",
      "browser": "Safari",
      "os": "macOS"
    }
  ]
}
  • createHandler
  • stripPii
  • utm
  • sessionId

Custom event with personal data

examples/output/event.jsonDetail: Custom event with personal data →
{
  "headers": {
    "content-type": "application/json",
    "user-agent": "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.144 Mobile Safari/537.36",
    "accept-language": "en-US,en;q=0.9",
    "x-forwarded-for": "198.51.100.7"
  },
  "body": {
    "type": "event",
    "name": "signup_click",
    "url": "/users/jane@example.com/settings",
    "props": {
      "plan": "pro",
      "email": "jane@example.com",
      "note": "reply to jane@example.com",
      "seats": 3
    },
    "ts": 1791961260000
  }
}
{
  "response": {
    "status": 200,
    "body": "OK"
  },
  "stored": [
    {
      "type": "event",
      "name": "signup_click",
      "url": "/users/[redacted]/settings",
      "props": {
        "plan": "pro",
        "email": "[redacted]",
        "note": "reply to [redacted]",
        "seats": 3
      },
      "ts": 1791961260000,
      "sessionId": "6a903f454a1bbf75",
      "device": "mobile",
      "browser": "Chrome",
      "os": "Android"
    }
  ]
}
  • track
  • sanitizeProps
  • stripPii

Crawler request

examples/output/bot.jsonDetail: Crawler request →
{
  "headers": {
    "content-type": "application/json",
    "user-agent": "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
    "x-forwarded-for": "66.249.66.1"
  },
  "body": {
    "type": "pageview",
    "url": "/pricing",
    "ts": 1791961320000
  }
}
{
  "response": {
    "status": 200,
    "body": "OK"
  },
  "stored": []
}
  • botFilter
  • isBot

Tracking pixel

examples/output/pixel.jsonDetail: Tracking pixel →
{
  "url": "https://example.com/pixel.gif?url=/newsletter/october&ref=mail",
  "headers": {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "accept-language": "en-US,en;q=0.9",
    "x-forwarded-for": "192.0.2.15"
  }
}
{
  "response": {
    "status": 200,
    "headers": {
      "cache-control": "no-store, no-cache, must-revalidate",
      "content-type": "image/gif",
      "pragma": "no-cache"
    },
    "bytes": 43
  },
  "stored": [
    {
      "type": "pageview",
      "url": "/newsletter/october",
      "referrer": "mail",
      "ts": 1791961200000,
      "sessionId": "6217de67bbf5a139"
    }
  ]
}
  • createPixelHandler
  • no JavaScript

Webhook adapter

examples/output/webhook.jsonDetail: Webhook adapter →
webhook({
  url: "https://api.example.com/events",
  secret: "example-secret",
}).save(storedPageview);
[
  {
    "url": "https://api.example.com/events",
    "method": "POST",
    "headers": {
      "Content-Type": "application/json",
      "X-Trackr-Signature": "e3630831a1a5de4e9d97478cfb44572aed4f469a8555f4c0dcbadf475ea057cb"
    },
    "body": {
      "type": "pageview",
      "url": "/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=october",
      "referrer": "news.ycombinator.com",
      "utm": {
        "source": "newsletter",
        "medium": "email",
        "campaign": "october"
      },
      "ts": 1791961200000,
      "sessionId": "c6c4216a1163582e",
      "device": "desktop",
      "browser": "Safari",
      "os": "macOS"
    }
  }
]
  • storage/webhook
  • HMAC-SHA256

GA4 Measurement Protocol

examples/output/ga4.jsonDetail: GA4 Measurement Protocol →
ga4({
  measurementId: "G-XXXXXXXXXX",
  apiSecret: "example-secret",
}).save(storedPageview);
[
  {
    "url": "https://www.google-analytics.com/mp/collect?measurement_id=G-XXXXXXXXXX&api_secret=example-secret",
    "method": "POST",
    "headers": {
      "Content-Type": "application/json"
    },
    "body": {
      "client_id": "c6c4216a1163582e",
      "non_personalized_ads": true,
      "events": [
        {
          "name": "page_view",
          "params": {
            "session_id": "c6c4216a1163582e",
            "engagement_time_msec": 1,
            "device_category": "desktop",
            "browser": "Safari",
            "page_location": "/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=october",
            "page_referrer": "news.ycombinator.com"
          }
        }
      ]
    }
  }
]
  • storage/ga4
  • server-side

Postgres insert

examples/output/postgres.jsonDetail: Postgres insert →
postgres(client).save(storedPageview);
[
  {
    "text": "INSERT INTO trackr_events (type, name, url, referrer_domain, country, device, browser, os, session_id, utm, props, ts) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, to_timestamp($12 / 1000.0))",
    "values": [
      "pageview",
      null,
      "/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=october",
      "news.ycombinator.com",
      null,
      "desktop",
      "Safari",
      "macOS",
      "c6c4216a1163582e",
      "{\"source\":\"newsletter\",\"medium\":\"email\",\"campaign\":\"october\"}",
      "{}",
      1791961200000
    ]
  }
]
  • storage/postgres
  • trackr_events