AxiTrace
Server-side tracking module for PrestaShop

Track the PrestaShop Sales Your Pixels Never See

See your real PrestaShop ROAS, not the numbers your ad platforms report. The free AxiTrace module for PrestaShop uses server-side tracking to capture more conversions, improve attribution, and reveal which campaigns actually deserve more budget.

  • Free module, PrestaShop 8.1 - 9.x
  • ZIP upload, no SSH, no cron
  • Free plan, no credit card
Sends verified conversions to
Your PrestaShop store
Identity stitched · 3 devices
Every sale accounted for

Every order, tied to the exact channel that earned it

No modeled conversions, no platform guesswork. Every transaction from PrestaShop shows its source, campaign, days to purchase and the full customer journey behind it, visit by visit. Pick the model that answers your question: first click (looking back 365 days), last click, or data-driven. Campaign tables and the ROAS ranking always use first click with a 180-day window, so they stay comparable.

  • Models First click, last click, data-driven
  • Campaign tables 180-day window
  • First click on orders 365 days
  • Data-driven 90 days
Customer Journey - order #10931
Visits
5
Ad clicks
2
Days to buy
9
Order value
$212.40
  1. Google Ads cpc First touchData-driven winner
    Summer Sale - Search gclid Landing: /collections/summer-sale 9 days before
  2. Facebook paid
    Lookalike - Prospecting fbclid Landing: /products/linen-shirt 6 days before
  3. Google organic organic
    Landing: /blog/how-to-wash-linen 3 days before
  4. Newsletter email
    utm_campaign=september-edit Landing: /products/linen-shirt 1 day before
  5. Direct Last touch
    Landing: /cart Order day
  6. Purchase #10931 $212.40
    Sep 30, 14:22

Every visit and ad click recorded for this customer before the order. Ad platforms credit any click inside their own window, so they can point at a different campaign than the one AxiTrace credits.

The entire path a buyer took, not just the last click

Open any order and see every visit that led to it: source, campaign, click ID, landing page and how long before the visitor actually bought. Including journeys a browser pixel's 7-day window would have lost.

Recent Orders
Recent orders with the credited source, sample data
Order Date Revenue Source
#10931Sep 30, 14:22 Sep 30, 14:22 $212.40 Google Ads Direct Google Ads
#10930Sep 30, 11:05 Sep 30, 11:05 $86.00 Facebook Newsletter Facebook
#10929Sep 30, 09:41 Sep 30, 09:41 $164.90 TikTok Google Ads Google organic
#10928Sep 29, 21:17 Sep 29, 21:17 $129.00 Google organic ChatGPT ChatGPT

Recent orders, each with the source that earned it

Switch the model and watch the credited source change. Each order keeps one source per model.

Aggregated Traffic Sources - last 30 days
Traffic sources, sample data
Source Visits Revenue Ad Spend Ad Clicks Transactions
Summary 121,690 $169,100 $39,930 69,910 1,223
Google Ads 31,200 $57,660 $16,360 28,590 410
Facebook 24,800 $38,340 $14,500 22,530 267
Google organic 19,780 $20,340 - - 155
Direct 14,600 $16,200 - - 119
TikTok 16,900 $10,180 $7,000 15,450 77

Revenue by the source that started it

Visits, revenue and orders per source, credited to the visit that brought the customer in (first click). Ad spend and ad clicks appear for Meta, Google Ads, TikTok, Microsoft Ads and OpenAI Ads; newsletters, ChatGPT or Pinterest still show what they sold.

One dashboard for your ad spend

Facebook, Google and TikTok in one view. The winning campaign is obvious.

AxiTrace reads spend from your Meta, Google Ads, TikTok, Microsoft Ads and OpenAI Ads accounts, matches it to your PrestaShop orders, and ranks every campaign by the ROAS you actually earned. Pinterest, LinkedIn, newsletters, ChatGPT and every other source sit in the same view with their visits, orders and revenue. No tab-hopping between ad managers, no five versions of the truth.

The Business Overview of an AxiTrace workspace, drawn with sample data. Date presets from 7 to 180 days, each compared with the previous period. See everything the unified ads dashboard shows.

The campaign face-off

Which campaign deserves the next $1,000?

Top Ad Campaigns by ROAS puts your Meta, Google Ads, TikTok, Microsoft Ads and OpenAI Ads campaigns in one ranking, scored on the same rules: your real orders, first-click attribution, one 180-day window. The leaders and the leaks show up on the first screen, not after an afternoon of spreadsheets.

  • Same ruler for every ad platform. A 0.6x campaign reads 0.6x whether it runs on TikTok, Facebook, Google, Microsoft Ads or ChatGPT.
  • Spend from the ad account, revenue from your store. Nothing modeled, nothing estimated.
  • Advice when you ask for it. The AI Advisor writes a budget report from these numbers: warnings, recommendations and the evidence behind each.
Rank my campaigns for free
Top Ad Campaigns by ROAS - last 30 days
  1. 1 Brand - Search Google Ads ROAS 12.12
  2. 2 Brand - Search Microsoft Ads ROAS 7.65
  3. 3 Retargeting - Cart Viewers Meta ROAS 5.20
  4. 4 Summer Sale - Search Google Ads ROAS 3.24
  5. 5 Shopping - Catalog Microsoft Ads ROAS 2.82

Your ranking is built from your own spend and orders.

Same week. Three different answers.

Every platform counts the conversions it managed to see, then adds modeled ones on top. Only your order list is real.

Meta Ads Manager says
9
purchases, 7-day click + 1-day view
Google Ads says
5
conversions, partly modeled
Your store says
11
paid orders. This one is real.
AxiTrace shows
11
orders, each credited to one campaign

Ad platforms claim overlapping and modeled conversions, so their totals rarely add up to your orders.

The problem

Your Ad Pixels Are Lying to You

Client-side tracking is fundamentally broken. Here's what your pixels are missing.

20-40% of conversions lost, as commonly reported

Ad blockers

Ad blockers stop Facebook, TikTok and Google scripts from loading at all. The pixel never fires, the sale vanishes, and the campaign that earned it looks weaker than it is.

7 days before cookies expire

Safari ITP and iOS privacy

Safari deletes first-party cookies after 7 days and iOS App Tracking Transparency blocks cross-site tracking. Sales that took longer than a week get credited to "direct", not to the ad.

2x inflated conversions

Double-counting

Pixel plus CAPI without proper deduplication counts each sale twice. Some campaigns look twice as profitable as they are and get budget they never earned.

The fix

AxiTrace closes all three gaps with one install, so the ROAS you act on is built on real orders.

See how it works
Free PrestaShop module

A free PrestaShop module. Purchases sent from your server.

Most PrestaShop stores track sales with a browser pixel module or a Tag Manager container, which consent banners, iOS and ad blockers then switch off. The AxiTrace module sends the Purchase from your PrestaShop server the moment the order counts as a sale. Open source under AFL-3.0, PrestaShop 8.1 - 9.x on PHP 8.1+, Classic and Hummingbird themes.

Install in a few minutes

No SSH, no Composer, no system cron. The module installs from your PrestaShop back office.

  1. 1Download the module ZIP. Do not unpack it.
  2. 2Open Modules, Module Manager, Upload a module and drop the ZIP.
  3. 3Click Configure, turn on tracking, paste your public key and save.

Then connect your ad platforms in AxiTrace and place a test order. Add the secret key to send product costs and refunds for profit.

PHP 8.1+ · PrestaShop 8.1 - 9.x · Full guide: PrestaShop setup guide

What the module tracks

The server-side transaction.charge event is the one that matters for ROAS. The rest are client-side signals that help with audiences, retargeting and funnel analysis, and follow the consent mode you choose.

Swipe the table sideways for every column.

Event Trigger Source
transaction.charge Order is paid, or placed with cash on delivery Server
product.view Product page loads Browser
product.addToCart Item added to cart (product page, quick view or listing) Browser
begin_checkout Checkout page loads Browser
add_payment_info Payment option selected in checkout Browser
page.view Every storefront page Browser

Under the hood

Intentionally boring: a standard PrestaShop module, standard hooks, no background processes and no extra PHP extension.

  • Sends the Purchase once, at the first status PrestaShop marks as paid. Cash on delivery orders go out when they are placed, with an editable list of COD payment modules.
  • Deterministic event ID per PrestaShop order, so status changes and retries never send a second purchase and pixel deduplication works.
  • With the secret key set, every order line carries its purchase cost, and credit slips, cancellations and refunded orders are reported for profit only.
  • Failed deliveries queue on your shop and retry with backoff at the end of ordinary requests. No system cron; an optional cron URL for quiet shops.
  • Three consent modes, from load immediately to waiting for consent for the browser SDK and the server-side order events. Registers with the psgdpr module.
  • Calls the AxiTrace SDK directly and never pushes to your dataLayer, so your own Google Tag Manager tags do not fire twice.

Built for the way PrestaShop stores sell

European B2C stores

Cash on delivery, bank wire and card payments each counted at the right moment, with a consent flow that holds tracking until the visitor accepts.

Stores with a B2B group

Exclude your wholesale or B2B customer groups from tracking, so trade orders never inflate the ROAS of your consumer campaigns.

Multistore setups

A public key per shop, so each shop reports to its own AxiTrace workspace with its own ad accounts, from one installed module.

Agency-managed stores

A standard PrestaShop module installed from a ZIP in the back office. Open source, with a connection health panel and a delivery log your client can read.

How the numbers get accurate

Server-side tracking, explained simply

The Purchase is sent the moment the order counts as a sale. The module listens to PrestaShop order status changes and sends the order from your server once it is paid, or as soon as a cash on delivery order is placed. Ad blockers and Safari cannot drop it, because the browser is not involved, and what is forwarded still follows your consent settings.

  1. 1

    Both copies share one event ID. Facebook, TikTok and Google Ads deduplicate them into a single conversion. No double-counting, so the platforms optimize on complete data instead of a partial or inflated count.

  2. 2

    The server-side copy does not depend on the browser. It is not stopped by ad blockers, not limited by Safari’s 7-day cookie expiry and not affected by iOS App Tracking Transparency.

  3. 3

    Optional: your own tracking domain. Point a subdomain like axi.yourstore.com at AxiTrace. It is verified and TLS-provisioned automatically, usually live in under an hour, for the strongest first-party setup.

How each order then reaches Meta, Google Ads, TikTok and six more destinations, matched and counted once: the AxiTrace Conversion API.

Conversions reaching your ad platforms
Browser pixel only Part of them
Pixel + AxiTrace server-side Every recorded order

Illustrative. How much a pixel alone misses depends on your shoppers' browsers, ad blockers and consent choices. Server-side, every order your store records is sent within your consent settings and deduplicated against the pixel, so the platforms count it exactly once.

Real ROAS per campaign

True ROAS per campaign. Same format for all five ad platforms.

Spend, clicks, conversions, revenue and ROAS, calculated from real PrestaShop orders instead of estimated by the ad platform. Facebook, Google Ads, TikTok, Microsoft Ads and OpenAI Ads side by side, including the campaigns that aren't paying off.

Campaigns - first click, last 30 days
Meta campaigns, sample data
Campaign StatusBudgetper daySpendplatformImpressionsplatformClicksAxiTraceTracked CTRTracked CPCConversionsAxiTraceRevenueAxiTrace ROAS
Lookalike - Prospecting Active$210$6,200812,4009,8601.2%$0.63118$17,050 2.75
Ad setLAL 1% - Purchasers $3,900498,0006,2401.3%$0.6379$11,450 2.94
Ad setLAL 3% - Add to cart $2,300314,4003,6201.2%$0.6439$5,600 2.43
Retargeting - Cart Viewers Active$75$2,150186,3003,4201.8%$0.6374$11,180 5.20
Spring Collection - Advantage+ Active$160$4,800640,2007,3101.1%$0.6669$9,420 1.96
Video Views - Brand Paused$60$1,350402,0001,9400.5%$0.706$690 0.51
Total Meta $14,5002,040,90022,5301.1%$0.64267$38,340 2.64

Spend and impressions are read from each ad platform. Clicks, conversions and revenue are counted by AxiTrace from your store, so ROAS = revenue your store recorded / spend the platform charged. Meta campaigns open into ad sets and ads.

Every campaign, broken down

  • Spend and impressions

    Read from each ad account: Meta, Google Ads, TikTok, Microsoft Ads and OpenAI Ads. The budget and status columns come from there too.

  • Clicks, conversions, revenue

    Counted by AxiTrace from real PrestaShop orders, credited by first click within 180 days, so ROAS is revenue your store recorded divided by spend the platform charged.

  • Ad sets and ads

    Meta campaigns open into their ad sets and ads with the same columns. Google Ads, TikTok, Microsoft Ads and OpenAI Ads report per campaign.

AI Marketing Advisor LIVE

Where is your ad budget leaking? The AI Advisor tells you.

Accurate numbers are only half the job. Pick a focus in the AI Advisor tab and get a written report built from your own store: a summary, the warnings that need attention and the recommendations worth acting on, each with its evidence. 3,000 AI credits on the Free plan.

Finds the leaks

A budget report compares every campaign with your other campaigns on the same platform and names the ones spending without tracked revenue, with the numbers behind the call.

Recommends the next step

Recommendations with numbered actions you take in your own ad account, grounded in real PrestaShop orders, not the ad platform's own estimates. AxiTrace never changes a campaign for you.

Shows its evidence

Every warning and recommendation lists the figures it is based on. Plain English, no black box.

Pick the question, get the report

8 focus areas, from budget optimization and sales growth to conversion tracking health. Each report reads your Meta, Google Ads and TikTok campaigns over 180 days plus your store and traffic data.

AI Advisor - Budget optimization analysis

Budget optimization analysis

Requested Sep 29, 2026 09:14

Summary

"Brand - Search" on Google Ads returned a ROAS of 12.12. "Spring Collection - Advantage+" is the weakest active Meta campaign at 1.96.

Warnings 1

  • Warning TikTok returns the least per dollar

    TikTok campaigns spent 7,000.00 USD in the window and brought 10,180.00 USD of revenue, a ROAS of 1.45, against 2.64 on Meta and 3.52 on Google Ads.

Recommendations 1

  • Info Give "Summer Sale - Search" more budget

    Its ROAS of 3.24 is above the 2.36 of "Performance Max - Catalog" and the 1.13 of "Display - Remarketing", from 121 orders in the window.

Every finding lists its evidence and suggested actions.

See how the AI Advisor works

See your own PrestaShop orders broken down like this.

Start Free
Quick setup

Up and running in minutes

Three steps to accurate conversion tracking. No developer required.

1

Upload the free module

Download the ZIP, upload it in Modules, Module Manager and paste your public key, per shop if you run several. No SSH, no Composer, no system cron.

axitrace-prestashop-module-latest.zip
2

Connect your ad platforms

Facebook, Google Ads, TikTok, GA4, Reddit, OpenAI Ads, Pinterest, LinkedIn and Microsoft Ads: one click each via OAuth or a one-time API key. Guided setup for every platform.

3

Watch accurate data flow

Place a test order and set it to Payment accepted, or pay cash on delivery. The Purchase is sent from your server and lands in the dashboard within a few minutes.

Events flowing
Delivery rate 99.9%
Platforms active 8/8
Integrations

Works with the platforms you already use

Connect once. AxiTrace sends deduplicated server-side events to all nine ad platforms at the same time.

Server-side purchase events with Advanced Matching for a higher Event Match Quality.

Conversions sent with the click ID (gclid, gbraid, wbraid) and hashed customer data, so Smart Bidding learns from every real order.

Full-funnel server-side events for TikTok Ads, deduplicated against your pixel.

Server-side purchase and funnel events into Google Analytics 4, no Tag Manager needed.

Reddit click ID matching so Reddit Ads gets credit for the sales it started.

Conversions for ads inside ChatGPT, sent server to server through the OpenAI Conversions API.

Pinterest click ID (epik) matching for Pinterest Ads attribution.

B2B lead and purchase conversions sent server-side to LinkedIn Ads.

UET Conversions API conversions matched on the Microsoft Click ID (MSCLKID) and hashed email, plus read-only campaign and spend import through a Microsoft sign-in.

Compare

AxiTrace vs other PrestaShop tracking approaches

Most PrestaShop merchants land on one of four setups. Here is how they compare on the things that actually move ROAS.

Swipe the table sideways for every column.

Approach Bypasses ad blockersUnpaid orders excludedSetup timeMaintenance
AxiTrace module ✓✓~10 minNone
Browser pixel module or GTM Web ××1-2 hFrequent
Server-side GTM (sGTM, Stape) ✓Partial1-3 daysHigh
Custom PrestaShop module (DIY) ✓✓2-6 weeksHigh

Worth knowing: The best-known tracking tools (Triple Whale, Hyros, Elevar) are Shopify-first and do not support PrestaShop. That leaves a pixel module that fires on the confirmation page whether or not the order is paid, an agency sGTM setup or a DIY module, the gap the AxiTrace module was built to close.

See also: AxiTrace vs Stape, vs Elevar, vs Triple Whale

Not sure you need this?

The two questions everyone asks first

"Ads Manager already shows me ROAS. Why do I need another number?"

Because each platform grades its own homework. Facebook, Google and TikTok each count only the conversions they managed to see, using their own attribution window and their own modeling, so three platforms give you three ROAS figures that do not add up to your actual sales. AxiTrace calculates ROAS from your real PrestaShop order list, with one attribution model and one 180-day window across Meta, Google Ads, TikTok, Microsoft Ads and OpenAI Ads, so a 0.6x campaign reads 0.6x wherever you look.

"We already have the Facebook Pixel set up. Why do we need this?"

Because your pixel alone cannot see everything. Ad blockers, Safari's 7-day cookie limit and iOS App Tracking Transparency mean part of your real conversions never reaches it (industry reports commonly put the loss at 20-40%; yours depends on your shoppers). AxiTrace runs alongside your existing pixel, sharing the same event ID with the server-side call, so Facebook, TikTok and Google Ads deduplicate automatically. You keep what you have and add what is missing.

Accuracy

Every number comes from your own orders, not platform-estimated conversions. Multi-currency revenue is converted daily using ECB exchange rates.

Setup effort

Upload the module ZIP in the back office, paste your public key, OAuth-connect your ad platforms. Setup takes minutes, no developer required.

Privacy and first-party

Server-side processing keeps you in control of what is shared. Configurable data retention, automatic PII hashing, DNT respected, EU-hosted infrastructure.

First-party domain. DNT respected. GDPR-ready.

Point a CNAME at AxiTrace and your tracking calls run from a subdomain of your own store, verified automatically every 15 minutes with TLS provisioned for you. Not a third-party host that ad blockers already know to block. Visitors who send a Do Not Track signal are handled according to the toggle you control, per workspace.

  • PII hashed with SHA-256 before it leaves for any ad platform
  • Configurable data retention per plan
  • EU-hosted infrastructure
FAQ

Frequently asked questions

Which PrestaShop versions does AxiTrace support?
PrestaShop 8.1 to 9.x, including 9.2, on PHP 8.1 or later. The module is tested with the Classic and Hummingbird themes and the themes derived from them. PrestaShop 1.7 and 8.0 are not supported: the installer refuses them with a clear message.
How do I install the module?
Download the free module ZIP from axitrace.com (its SHA-256 checksum is published next to it), then in the PrestaShop back office open Modules, Module Manager, click Upload a module and drop the ZIP. Click Configure, turn on Enable tracking, paste your workspace public key and save. No SSH, no Composer and no system cron are needed. Updating works the same way: upload the new ZIP over the installed module and your settings are kept.
How is server-side tracking different from a normal PrestaShop pixel module?
A normal pixel runs in the visitor's browser, so it is blocked by ad blockers, held back by the cookie banner and silenced by Safari ITP and iOS privacy. The AxiTrace module sends the purchase from your PrestaShop server instead, when the order counts as a sale, so none of that can drop it. The browser SDK still covers page views, product views, add to cart and checkout, and both copies of the purchase share one event ID, so it is counted once.
When is a purchase sent? What about bank wire and cash on delivery?
PrestaShop creates an order before the money is in, so the module waits for the first moment the order is a real sale. An online payment is sent when the order reaches a paid status such as Payment accepted, usually seconds after checkout. A bank wire or check order is sent when you set it to Payment accepted, keeping the original order date for attribution. A cash on delivery order is sent when it is placed; third-party cash on delivery modules can be added in the settings. An order that is canceled or fails before it counts as a sale is never sent.
Can AxiTrace show profit and POAS for my PrestaShop store?
Yes. Paste your workspace secret key into the module settings and every order line also carries its purchase cost (the wholesale price recorded on the order, converted into the order currency), and credit slips, line cancellations and refunded orders are reported as refunds. AxiTrace then shows profit and POAS next to ROAS. Refunds are used for profit only: they never reach an ad platform. The secret key is stored encrypted and never printed in your storefront.
Is the module GDPR-compliant? How does it handle cookie consent?
The module has three consent modes: load immediately (the default), wait for consent before loading the browser SDK, or wait for consent for the browser SDK and the server-side order events. A consent cookie set by your consent module or a one-line JavaScript call from its accept callback grants consent, and another line withdraws it and deletes the AxiTrace identifiers. If PrestaShop's official GDPR module (psgdpr) is installed, AxiTrace registers with it for customer data export and erasure. Compliance remains the merchant's determination as data controller.
Does it support multistore and B2B customer groups?
Yes. The module follows PrestaShop's multistore configuration: every shop can have its own public key and report to its own AxiTrace workspace, and every order, retry and refund is sent with the settings of the shop it was placed in. Customer groups you select, typically your B2B group, are excluded from tracking entirely: no browser events and no purchases for those customers.
What happens if AxiTrace cannot be reached when an order is paid?
The module sends with a short timeout, so checkout and the back office never wait for AxiTrace. A failed delivery is kept in a queue on your shop with the same event ID and retried automatically, at the end of ordinary page requests, so no system cron is required. An optional cron URL is available for quiet shops. The configuration page shows the connection health and a delivery log.
Will it conflict with ps_googleanalytics or my Google Tag Manager setup?
No. The module calls the AxiTrace SDK directly and never pushes to your dataLayer, so your own Google Tag Manager tags do not fire twice, and ps_googleanalytics can stay installed. Facebook, TikTok and Google deduplicate the AxiTrace events against your existing pixel by the shared event ID. If another module also sends purchases to the same Meta or TikTok pixel, switch its purchase event off.
Is the module really free? Is it on PrestaShop Addons?
The module is free and open source under the Academic Free License 3.0, with no licence check. Billing is on the AxiTrace SaaS at axitrace.com only - the Free plan covers 10,000 visits per month, all nine ad platform integrations, and one workspace. Paid plans start at $99 / month billed annually when your visit volume grows. The module is not on PrestaShop Addons yet: download the ZIP from axitrace.com or get the source from GitHub.
Why is my ROAS different in Facebook Ads Manager, Google Ads and AxiTrace?
Each ad platform counts only the conversions it managed to see, applies its own attribution window (7-day click, 1-day view, and so on), and often adds modeled conversions on top - so the same PrestaShop sale can be claimed by two platforms, or by neither. AxiTrace uses one attribution model and one 180-day window across every platform, tied to your actual PrestaShop order list, so the numbers are comparable side by side and add up to your real revenue.
Can AxiTrace tell me which PrestaShop campaigns to scale or cut?
Yes. The AI Marketing Advisor reads your connected campaigns, spend, real PrestaShop orders and attribution, then returns a concrete plan - which budgets to raise, which to cut, and why - with the evidence and action steps cited for each finding. It is built on the same server-side order data as the rest of the dashboard, not on the ad platform's own modeled estimates.

Looking for the step-by-step install? Read the PrestaShop setup guide, or compare against WooCommerce, Shopware and Magento 2.

Ready to see which
PrestaShop ads actually make money?

Every sale accounted for, true ROAS per campaign, and an AI advisor that tells you where the budget should go. Free plan, no credit card, install the free module in minutes.

10,000 free visits/month · All 9 ad platforms · AI Marketing Advisor included