GDPR and consent for server-side retail tracking
Written by The Pixamp Team
Sending conversion events from your server instead of the browser does not move you outside GDPR. The obligation follows the personal data, not the transport.
Does server-side tracking need consent under GDPR?
Yes, when the events carry personal data. A conversion event sent through a server usually includes an email, a hashed identifier, an IP address, or a click ID that maps back to a person. Under GDPR that is personal data, and processing it for ad targeting needs a lawful basis.
For advertising and measurement, the practical lawful basis is consent. The ePrivacy Directive requires consent to read or write information on a device, which covers the pixel, the cookie, and the click ID your ads pass along. Once you hold that identifier, GDPR Article 6 governs what you do with it next. Server-side delivery changes where the request originates, not whether a person agreed to be tracked.
The mistake worth avoiding is treating a server call as invisible to the shopper. The shopper still has rights over the data in that call, and regulators have said so.
What consent do you actually need to capture?
You need a clear opt-in before any tracking identifier is set or forwarded. That means a consent banner that blocks marketing tags until the shopper acts, records the choice, and lets them withdraw it later.
Consent Mode is Google's mechanism for this, and Meta has an equivalent consent signal. Both let you gate whether an event is eligible for ad use based on the shopper's choice. When someone declines, the marketing event should not fire, or should fire stripped of anything that identifies them.
The buyer-intent signals that make retail campaigns work only carry weight when they represent real, consenting shoppers. A consent record tied to each event is what lets you prove that later.
A defensible consent capture records:
- The exact choice the shopper made, per purpose (marketing, analytics, functional).
- A timestamp and the version of the banner text shown.
- A path to withdraw that is as easy as the path to accept, per Article 7(3).
What data minimization means for conversion events
Article 5(1)(c) says you collect only what you need for the stated purpose. A conversion event does not need a shopper's full profile. It needs enough to match the person to an ad click and no more.
In practice that means hashing identifiers before they leave your system. Email and phone go through SHA-256 so the raw value never travels. You send the match keys the platform needs, drop the fields it does not, and set a retention window rather than keeping events forever.
Minimization also limits blast radius. If a payload only ever contains hashed keys and an event name, a leak exposes far less than a payload carrying names, addresses, and cart contents. The same discipline that keeps you compliant keeps your server-side tracking lean.
Here is a minimized event next to an over-collected one:
{
"event_name": "Purchase",
"event_time": 1757203200,
"user_data": {
"em": "8f9a...hashed",
"ph": "b21c...hashed",
"client_ip_address": "truncated",
"fbc": "fb.1.1757203200.AbC"
},
"custom_data": { "currency": "EUR", "value": 42.00 }
}Everything in user_data is a match key. There is no plaintext name, no shipping address, no browsing history. That is what Article 5 asks for.
Who is the controller, and why the processor agreement matters
When you decide why and how the data is processed, you are the controller. Any vendor that handles the events on your behalf is a processor, and Article 28 requires a written contract, a data processing agreement, before they touch a single record.
That contract has to name the purpose, the data categories, the retention period, and the security measures. It must bind the processor to act only on your instructions and to help you answer data subject requests. If the vendor sends data outside the EU, you also need a transfer mechanism: standard contractual clauses or an adequacy decision under Chapter V.
| Requirement | GDPR reference | What it looks like in practice |
|---|---|---|
| Lawful basis | Article 6 | Consent captured before tracking |
| Data minimization | Article 5(1)(c) | Hashed match keys only |
| Consent withdrawal | Article 7(3) | One-click opt-out in preferences |
| Processor contract | Article 28 | Signed DPA with each vendor |
| International transfer | Chapter V | SCCs or adequacy decision |
Read the primary text rather than a summary. The full Article 28 requirements list every clause a processor contract must contain, and the Meta Conversions API documentation shows which fields it expects hashed.
A pre-launch checklist for EU brands
Before you route a single conversion event server-side, walk this list. Each item maps to an article a regulator can cite.
- Confirm your consent banner blocks marketing tags until opt-in, and test that declining actually suppresses the event.
- Wire the consent signal into the event pipeline so a declined choice strips or drops the identifier.
- Hash email and phone before they leave your systems, and truncate IP addresses.
- Set a retention window on stored events and document why that length fits the purpose.
- Sign a data processing agreement with every vendor in the chain and check for a valid transfer mechanism.
- Log withdrawals and make sure a later opt-out stops future events tied to that person.
This work matters in retail because the sale often lands off your domain, which is exactly the case a retail attribution measurement stack has to account for. The consent record travels with the event, or the event should not travel at all.
Where to start
- Website: www.pixamp.io. Send Meta ad traffic to retailers and return buyer-intent signals to Meta. First 1,000 clicks free, no card required.
- How it works: www.pixamp.io/#how-it-works. The three-step setup: connect Meta Business Manager, add a retailer button, launch. Live in under an hour.
- Book a demo: www.pixamp.io/#contact. A 20-minute walkthrough on a real retailer page, with the founding team.
Consent and minimization are the conditions that make server-side tracking hold up. Get the banner, the hashing, and the DPA in place, and the events you send are ones you can stand behind.
