Know which ads bring paying customers.
Whichpaid links every visit to the order it led to, so you know which channels, campaigns and pages make money. Hosted in the EU. Works without cookies.
The clickable live demo is being prepared.
- EU hosting (Germany)
- No cookies needed
- No full IP addresses stored
- DPA included
From first click to paid order in 3 steps
<script defer src="/k7x/s.js" data-site="a1b2c3d4e5f6" data-api="/k7x/e/"></script>
One line in your page head, served from your own domain so ad blockers leave it alone.
Click "Connect to Whichpaid" in your Medusa admin and assign each sales channel to a website.
Every list shows visitors and revenue side by side. Paid Search: 2,697 visitors, €28,430.
Revenue by channel, campaign and page
Each row shows visitors and the money they brought. Revenue per visitor tells you what one visit from that source is worth.
Paid Search brought 34% of revenue with 26% of visitors.
See it in the demo →Know every customer and their lifetime value
First channel, every order and every refund on one timeline. Names and emails stay in your shop.
Customer Q2K5: 4 orders, €998.06 net, first came from Paid Search.
See it in the demo →- Arrived via Google Ads · Brand SearchSep 12
- Order #10102 · €79.80Sep 18
- Order #10234 · €39.90Oct 3
- Refund -€39.90Oct 5
Send real values to Google Ads
Export a file in one click, or let Whichpaid upload new orders every 15 minutes. Refunds correct the value.
Uploaded 1,284 conversions this month · 0 errors.
See it in the demo →- Success48 conversions12 min ago
- Success52 conversions27 min ago
- Waiting6 iPhone clicks, up to 72 htoday
Watch visitors live
A globe with everyone on your site right now and a feed of pages, goals and orders. Buyers get a petrol ring.
Visitor 7F3A from Bern placed an order of €39.90.
See it in the demo →Made for the person running your ads
Invite your Ads manager with their own role: they see revenue and exports, never customer details.
A Data Manager file with purchases and later value changes in one file.
Google fetches a scheduled HTTPS file, or Whichpaid uploads every 15 minutes.
A refund sends the new net value. A chargeback sets it to zero.
Whichpaid keeps gclid, gbraid and wbraid until the purchase, so Google can match iPhone sales too.
Ask your AI agent about your revenue
Connect Claude, ChatGPT, Codex or Cursor via MCP, or use the CLI.
| Campaign | New customers | Revenue |
|---|---|---|
| D1 Brand | 37 | €12,275 |
| weekly-digest | 22 | €5,167 |
| D1 Generic | 19 | €7,333 |
Not technical? Start here
Let your AI agent do the setup, for example Claude Code, Codex or Cursor. You copy one prompt and say yes when it asks.
Do it with your AI agent
Not technical? Copy this prompt into your AI agent, for example Claude Code, Codex or Cursor. It does the steps and asks you before it changes anything.
You are helping me add Whichpaid to my website {{domain}}. Whichpaid shows which ads bring paying customers. My Whichpaid site ID is {{site_id}}. 1. Find out how my website is built and where the <head> of every page is rendered. 2. Serve the Whichpaid script from my own domain: forward /k7x/s.js and /k7x/e/ to https://e.whichpaid.com, as described on docs.whichpaid.com/install/{{framework}}. 3. Add this to every page: <script defer src="/k7x/s.js" data-site="{{site_id}}" data-api="/k7x/e/"></script> 4. Change nothing else. Show me every change before you save it, and publish only after I say yes. 5. When it is live, open my website once and tell me to check app.whichpaid.com/{{site_number}} for "Receiving data".
What your agent needs
- Access to your website's code
- Permission to publish a new version
What you do yourself
- Say yes when the agent asks
- Open your website once after publishing
Something not working? Copy the troubleshooting prompt
Whichpaid shows no data for {{domain}}. Please check, without changing anything yet: 1. Does https://{{domain}}/k7x/s.js load? 2. Does every page contain the script tag with data-site="{{site_id}}"? 3. Are requests to https://{{domain}}/k7x/e/ answered with status 202? Tell me what you found and what you would change, then wait for my yes.
Works with your stack
Shops & payments
- MedusaAvailable
- ShopifyComing soon
- WooCommerceComing soon
- StripeComing soon
- PayPalComing soon
- PaddleComing soon
- Lemon SqueezyComing soon
- Payments APIComing soon
Websites
- HTMLAvailable
- Next.jsAvailable
- ReactAvailable
- VueAvailable
- WordPressAvailable
- WebflowAvailable
- Google Tag ManagerAvailable
- npmAvailable
Privacy by default, not by banner
Basic counts per day without storage. Full adds multi-day journeys after consent.
Servers in Germany. No transfer to third countries.
Every customer's data is separated at database level.
DPA, subprocessor list and security.txt are public.
Simple pricing that grows with your traffic
- 1 website
- Revenue from Medusa
- Google Ads export
- 5 websites
- Automatic Google upload
- API, MCP and CLI
- Unlimited websites
- Session replay
- Priority support
Plans and prices are not final yet.
See full pricing →Questions and answers
Do I need cookies?
No. Basic mode counts visitors per day without storing anything on the device.
Is it GDPR and Swiss DPA ready?
Yes. Hosting in Germany, a DPA for every customer and only shortened IP addresses.
How does revenue get in?
The Medusa plugin sends every order, refund and chargeback to Whichpaid.
Which shops work?
Medusa today. Shopify, WooCommerce, Stripe and PayPal are coming soon.
How does the Google Ads upload work?
Start with a one-click file, or let Whichpaid upload new conversions every 15 minutes.
What happens with refunds?
Reports and Google values switch to the new net amount.
Can my Ads manager get access without seeing customer data?
Yes. The Ads manager role sees revenue and exports, never names or emails.
Do ad blockers block Whichpaid?
Not when the script runs from your own domain, which the setup does for you.
What does the script weigh?
About 3 kB compressed.
Can I use it with AI agents?
Yes, through MCP, the CLI or the API, read-only by default.
What happens if I exceed my plan?
We keep collecting and tell you.
Can I export or delete my data?
Yes. Export as CSV or through the API; deletion is one click in settings.
Why not just a typical analytics tool?
| Why not just a typical analytics tool? | Whichpaid | Typical web analytics |
|---|---|---|
| Revenue in every report | ✓ | Extra setup |
| Works without cookies | ✓ | Rarely |
| Real values to Google Ads | ✓ | Manual |
| Refunds correct the values | ✓ | No |
| Hosted in the EU | ✓ | Depends |
| Access for AI agents | ✓ | No |