Reddit Pixel Integration: setup and help
Quick start
- Upload and install the ZIP in Modules > Module Manager, then open Reddit Pixel Integration > Configure.
- In Reddit Pixel Settings, enter Pixel ID and leave Exclude employee browsing and Respect marketing consent enabled.
- Review the Track PageVisit, Track ViewContent, Track AddToCart, and other event switches.
- Set Enable Reddit Pixel to Yes and click Save.
- From a visitor browser, grant marketing consent and open a product page.
- Confirm the Reddit script loads and ViewContent reaches the browser event diagnostics.
- If using server events, configure Enable Conversions API events and its token, then confirm an eligible queue event is processed by send_reddit_conversions.
Setup manual
Installation and first configuration
Follow the steps in Quick start.
Reddit Pixel Settings
Set these in Modules -> Reddit Pixel -> Configure.
-
Enable Reddit Pixel. Turns browser Pixel tracking on or off; default:
0. -
Pixel ID. Stores your Reddit Pixel ID from Reddit Ads Manager -> Events Manager; default:
"". It must contain only letters, numbers, underscores, and dashes, with 4 to 128 characters. -
Exclude employee browsing. Stops tracking when a logged-in back-office employee browses the storefront; default:
1. -
Respect marketing consent. Loads Reddit tracking only after marketing consent when
mprcookiesrevolutionormprcookiebanneris active; default:1. -
Track PageVisit. Sends a general page visit event on tracked storefront pages; default:
1. -
Track ViewContent. Sends product view events on product pages when product data is available; default:
1. -
Track AddToCart. Sends cart addition events after a confirmed successful quantity increase; default:
1. -
Track AddToWishlist. Sends wishlist addition events from acknowledged successful wishlist additions; default:
1. -
Track InitiateCheckout. Sends checkout entry as a Reddit custom event named
InitiateCheckout; default:1. -
Track Search. Sends search events on search-related pages when a query is present; default:
1. -
Track Purchase. Sends purchase events on order confirmation with order value, currency, products, transaction ID, and conversion ID; default:
1. -
Track SignUp. Sends a sign-up event on the next page load after customer account creation; default:
1. -
Track custom events. Enables your JSON custom event rules for browser Pixel tracking; default:
0. -
Custom event rules. Stores the JSON array used for click, URL, controller, and DOM-event rules; default:
"". -
Enable Conversions API events. Queues eligible events server-side and sends them to Reddit with matching conversion IDs where the transport supports them; default:
0. -
Conversions API access token. Stores the Reddit Conversions API token generated in Reddit Ads Manager -> Events Manager; default:
"". -
Events testing ID. Enables Reddit test mode for CAPI payloads when filled; default:
"". -
Queue batch limit. Controls how many queued conversion events are processed per run, from 1 to 100; default:
20. -
Persist consent withdrawals. Default:
0. Enables a durable veto for previously accepted purchase and contact-form events. Enable it if you need that withdrawal persistence.
Click Save after changing the form.
Contact and product engagement settings
The current form also exposes these settings. All signal switches default to No. Enable only the actions you intend to observe.
| Setting | Default | Use |
|---|---|---|
| Track phone-link clicks | No | Observe supported telephone-link interactions. |
| Track actual chat starts | No | Observe supported confirmed chat-start signals. Opening an arbitrary chat button is insufficient. |
| Track successful contact forms | No | Observe a confirmed successful form submission with a receipt. A submit-button click is insufficient. |
| Track product engagement | No | Enable product interaction and dwell-time tracking. |
| Send confirmed forms through the server API | No | Requires the form signal, a configured server connection, the visitor's recorded consent and a receipt for the successfully submitted form. |
| Product engagement thresholds | Shared defaults | Enter a JSON object to change thresholds or theme selectors. |
Shared thresholds are three gallery views, one variant change, one detail click, a 45-second dwell, and a 1500 ms option throttle. Gallery, variant, and detail counts are bounded to 1 through 20. Dwell is bounded to 5 through 600 seconds. Throttle is bounded to 250 through 60000 ms. For example:
{"min_gallery_views":3,"min_variant_changes":1,"min_detail_clicks":1,"dwell_seconds":45,"option_throttle_ms":1500}
You can also provide gallery_selectors, variant_selectors, and detail_selectors. Keep defaults unless your theme needs different selectors. These optional signals require consent, employee-policy, and tracking-ownership checks just like commerce events.
Consent, employees, and tracking ownership
Keep the consent and employee-exclusion settings enabled during initial setup. Test from a normal visitor browser that is not marked as an employee. A logged-in Back Office session, an internal-traffic rule, or a visitor opt-out can suppress tracking.
The shared consent layer supports MPR consent integrations and additional CMP adapters. It must obtain a usable marketing decision for the destination. An unknown, stale, or refused decision can hold events. The module does not supply a cookie banner. A legacy consent preference does not override a live refusal from a detected CMP.
The module must own the configured destination in the shared tracking coordinator. Missing, ambiguous, or conflicting ownership can hold browser and server delivery. Remove duplicate theme tags or resolve the owner when another MPR module manages the same account.
Production sending also follows the outbound policy. An event shown in demo or preview mode is not necessarily delivered to your advertising account. Purchases and server form events are sent only with the consent the buyer gave at the time; a later cron run cannot supply that consent.
Storefront events
Your storefront header provides cache-safe configuration. The module loads https://www.redditstatic.com/ads/pixel.js after its checks pass. You do not get a normal storefront widget. The module supports displayHeader, displayOrderConfirmation, actionValidateOrder, actionCustomerAccountAdd, displayFooter, and displayBeforeBodyClosingTag.
With the relevant switches enabled, page visits send PageVisit; product pages send ViewContent; query pages send Search; acknowledged cart and wishlist additions send their matching events. Checkout entry sends Reddit Custom with customEventName=InitiateCheckout. Account creation is marked for SignUp on the next eligible page load.
Purchases include the available order items, quantities, value, currency, transaction ID and conversion ID. Server and browser purchases share the same purchase identity where available. Cart and wishlist additions need confirmation of a real addition; a browser event alone is insufficient.
Server events go to Reddit's https://ads-api.reddit.com/api/v2.0/conversions/events/PIXEL_ID endpoint with the configured Pixel ID. Which matching data is sent depends on the visitor's original attribution and consent. Browser and server copies share an event ID for deduplication when both are sent, but not every event is sent through both.
Custom event rules
Enable Track custom events, paste a JSON array into Custom event rules, and save. Adapt selectors and paths to your shop. Use click, url, controller, or event triggers. A controller rule can also include a modules list. Event names allow letters, numbers, underscores, and hyphens, up to 64 characters. The limit is 15 distinct names. once limits a rule within its current page runtime.
[
{
"event": "GalleryBrowse",
"trigger": "click",
"selector": ".product-images img,.images-container img",
"params": {
"property": "product_gallery"
},
"once": false,
"capi": true
},
{
"event": "LandingView",
"trigger": "url",
"contains": [
"/special-offer"
],
"params": {
"property": "special_offer"
},
"once": true,
"capi": true
},
{
"event": "ContactView",
"trigger": "controller",
"controllers": [
"contact"
],
"params": {
"property": "contact_page"
},
"once": true,
"capi": true
},
{
"event": "SizeGuideOpen",
"trigger": "event",
"dom_event": "mprreddit:sizeGuideOpen",
"params": {
"property": "size_guide"
},
"once": false,
"capi": true
}
]
Trigger the DOM rule from your theme after tracking has initialized:
document.dispatchEvent(new CustomEvent('mprreddit:sizeGuideOpen'));
Each rule's capi flag sends a server copy through the custom bridge. The bridge accepts Custom with customEventName, checks that the rule is configured, and needs an event ID and the visitor's current consent. Without them, the event is held.
For the click rule, supported data attributes can override value, currency, num_items, and event_id, for example:
<button class="track-reddit-demo" data-reddit-param-value="12.50"
data-mprreddit-param-currency="EUR">Track custom action</button>
Use a matching click selector in your rule. The older product_id and product_category attribute example is not consumed by the current runtime. A DOM event can supply supported commerce values in detail.params. Put static descriptive parameters in the rule itself.
Server delivery and queue maintenance
The task send_reddit_conversions is registered with schedule every:300. It becomes due every five minutes. Your shared MPR cron runner must execute due tasks; the schedule declaration alone does not run a worker. The batch-limit setting caps queue rows per processing run, from 1 through 100, with a default of 20.
The module does not include a standalone cron.php entry point. Use the shared scheduler already configured for your shop. Confirm task execution in that scheduler and check queue timestamps and status on this module's configuration page.
The diagnostics include readiness checks, queue counters, recent rows, Send API probe, and Retry failed events. Resolve the reason for failure before retrying. Returning failed rows to pending does not bypass current consent, employee policy, account ownership, or destination checks.
For Send API probe, enter an Events testing ID and have a real pending event from a buyer who consented. Without a test ID, current consent or a usable queued event, the probe is refused; it never creates a fake purchase. Clear Events testing ID when you are ready for production events.
Verification and troubleshooting
- Check required-configuration notices, tracking ownership, and the integrity banner.
- Use a normal visitor browser and grant marketing consent through your configured CMP.
- Open a product, search, and complete a successful cart addition. Check SDK loading and the matching event requests in the browser Network panel.
- Check Reddit's event diagnostics or Pixel Helper, if available in your testing setup.
- For purchases, use an authorized test flow and inspect the browser event, conversion ID, and queue row.
- For server delivery, run the configured scheduler and check the queue result. A browser call accepted by your shop has not necessarily reached Reddit.
If no script loads, check Enable Reddit Pixel, Pixel ID syntax, consent state, employee markers, ownership, outbound policy, and script blockers. If cart or wishlist events are absent, inspect successful-operation signals and product data. A click alone is insufficient. Use custom rules for separate interactions, without relabeling a click as a proven purchase or cart addition.
If CAPI rows fail or remain held, check the token, Pixel destination, recorded consent, queue schema, and cron execution. Custom rules need valid JSON and selectors. This version does not provide the former window.mprredditTrack helper.
Disable or uninstall
Turn off the browser and server switches and save if you want to stop tracking while retaining configuration. Uninstall from Module Manager to remove module settings, menu entries, and registered tasks.
Uninstall invokes the shared conversion-queue cleanup. The shared queue table is retained while another conversion module uses it and can be dropped when the last user is removed. Export diagnostics you need before uninstalling. Do not assume uninstall removes events already sent to the advertising platform or clears all browser attribution storage.
Compatibility
Requires PrestaShop 1.6.0.0 or later and PHP 7.1 or later.
Reference screenshots
![]()
![]()
Questions
No questions about this module yet
Ask anything about installation, compatibility or setup. Answers appear here.
Known Issues
7
Visitor-specific tracking on cached pages
Customer matching consent
Reddit conversion pixel fires on order confirmation page reload
Reloading or revisiting the order confirmation page fires the Purchase conversion event again, causing duplicate conversion tracking.
Resolution note
Added a one-time event flag stored in sessionStorage that prevents duplicate Purchase events on the same order.
PHP 7.1 compatibility
Combined storefront assets
Tracking actions on PrestaShop 9
Missing or damaged interface translations
Feature Requests
6
Implemented
Reddit Conversions API queue with event deduplication
Reddit browser tracking
Reddit server-side conversions
Custom conversion events
Coordination with other Reddit integrations
Tracking event preview in the demo
Changelog
v1.2.72026-09-25
- AddedAdd reddit conversions api tracking
- Addedcomplete FR/DE/ES/IT/PL translations
- FixedHarden Reddit Pixel readiness
Older releases
v1.2.22026-09-12
- Made the public demo telemetry body click-through so expanded diagnostics never block storefront actions while testing.
v1.2.12026-08-15
- Moved the expanded public demo telemetry monitor so it no longer covers product action buttons while testing cart and custom events.
v1.2.02026-08-02
- Addedpublic demo telemetry monitor with live event stream and CAPI readiness status.
- Aligned server payloads with Reddit Conversions API event format and standard event names.
- Addedfirst-party capture for rdt_cid, reddit_click_id and Reddit UUID values.
- Refreshed shared conversion, cron, integrity, license and update packages.
- Updateddemo seed configuration with a safe Pixel ID and GalleryBrowse custom event.
v1.1.02026-04-24
- AddedReddit Conversions API support with queued server-side events and retry diagnostics.
- Addedreadiness checks for Pixel ID, browser tracking, API token and queue table.
- Addedcustom event rules for clicks, URL matches, controller matches and DOM events.
- AddedAddToWishlist, SignUp, Search, checkout-start and richer Purchase payloads.
- Addedinstall-integrity warning when the Pixel ID is missing after install.
v1.0.02025-04-22
- InitialReddit Pixel module release for PrestaShop.
Demo
Test the full module before you buy
Buy a licence later and keep your settings.
- Your 30-day demo Test it on your own shop for 30 days from the first install.
- Ready demo shop Explore a ready demo shop in your browser.
- No registration No account, email or store domain needed.
By downloading, you accept the demo terms and privacy policy.
By opening this demo you accept the demo terms and the privacy policy.