First-party tracking

Track the visitors GA4 never sees

The SDK loads from your domain, so blocklists have nothing to match. That is 92 to 98% of visitors, against the 60 to 70% a GA4 tag typically sees.

Key takeaway

One event, collected once, does three jobs. It fills the gap in your analytics, it goes back to the ad platforms as a server-side conversion, and it is the row attribution runs on. Every tool downstream reads the same event, which is why the numbers stop disagreeing.
Collected once, used three times

Collection

Your domain, so there is nothing to block

Ad blockers work from lists of known domains, and google-analytics.com and the platform pixels are on all of them. An SDK served from your own domain is not, which is most of the 30 to 40% of traffic GA4 never records.

Served from your own domain

Keep collecting when the blocker is on. The snippet and the endpoint both sit on a subdomain of your site, so nothing calls a domain that appears on a blocklist and the SDK survives the strictest configurations.

Identified on the server

Count the visitor without storing anything personal. Sessions group by a hashed IP and user agent computed server-side, and the hash is ephemeral and cannot be reversed to a person.

Two modes, one visitor count

Report complete traffic whatever your consent rate. Without consent collection runs anonymously with no client-side storage; with consent a first-party cookie makes the visitor persistent, and only the attribution depth changes.

Under 5KB, loaded async

Add it without your developer pushing back. Under 5KB compressed, async, no movement in Core Web Vitals, and one snippet in the head or the native app on Shopify.

TrustData consent-adaptive tracking with anonymous and full modes

Forwarding

The same event goes back to the platforms

A conversion the browser never reported is a conversion the platform's optimiser never learned from. TrustData sends the event you already collected server-side, with the deduplication key attached, so the platform counts it once and bids on it properly.

One schema, three destinations

Define a conversion once and stop maintaining three integrations. It maps to Meta Conversions API, Google Enhanced Conversions and the TikTok Events API, or feeds the server-side GTM container you already run.

Deduplicated, not doubled

Feed the platform's optimiser without inflating your own numbers. Server-side events carry the key that matches them to the browser pixel, so the typical result is a 15 to 30% lift in match rate rather than in reported conversions.

Consent travels with the event

Forward personal fields only for visitors who consented to marketing. Everyone else still counts in your own analytics, they simply leave without identifiers attached.

Orders captured before the browser

Record the sale even when the confirmation page never fires. Purchases can be read from Shopify webhooks or your backend, which is the case a browser pixel silently loses.

TrustData server-side forwarding configuration per platform

Ownership

The raw events stay yours to take away

First-party is a property claim, not a marketing word. The events you collect and the attribution tables built from them export to storage you control, in a format your warehouse already reads.

Your bucket, your warehouse

Take the raw rows into your own stack. Events and attribution tables export to your Google Cloud Storage or Amazon S3 bucket, ready for BigQuery, Looker Studio or whatever pipeline you already run.

Parquet or CSV

Pick the format your destination wants. Parquet for columnar analytics, CSV when a spreadsheet is the endpoint, both on the schema the dashboard reads so an export is never a lossy copy.

Full history, no retention cliff

Query a year-old cohort without asking anyone. Events are kept with no retention limit, and nothing gets aggregated away at a plan boundary.

TrustData raw event and attribution export to cloud storage

What the SDK gives you beyond page views

The parts of the collection layer that stay one click away, so the story above does not have to carry them.

Custom events and user identity

Track clicks, form submissions and purchases through one API, and attach a user ID to tie sessions together across devices and visits. Works with React, Vue, Next.js and Nuxt without a framework-specific build.

Installed in five minutes

One snippet in the head, the same as installing a tag manager. Shopify has a native integration that needs no code at all. Custom events and server-side forwarding take about half an hour with the documentation open.

Where it feeds

The same event stream feeds multi-touch attribution, the AI referrer detection behind AI visibility, and the anomaly checks Lumen runs. One collection layer, not one per product.

What the same event does next

Collected once, it is forwarded to the ad platforms, recovers the sales the browser never reported, and meets whatever else you connect.

FAQ

Direct answers.

14-day free trial

See the traffic your tag manager is missing

14-day free trial. One snippet, five minutes, and the same event stream feeds attribution, forwarding and AI visibility.