Reddit Pixel Integration: setup and help

Quick start

  1. Upload and install the ZIP in Modules > Module Manager, then open Reddit Pixel Integration > Configure.
  2. In Reddit Pixel Settings, enter Pixel ID and leave Exclude employee browsing and Respect marketing consent enabled.
  3. Review the Track PageVisit, Track ViewContent, Track AddToCart, and other event switches.
  4. Set Enable Reddit Pixel to Yes and click Save.
  5. From a visitor browser, grant marketing consent and open a product page.
  6. Confirm the Reddit script loads and ViewContent reaches the browser event diagnostics.
  7. 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 mprcookiesrevolution or mprcookiebanner is 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.

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

  1. Check required-configuration notices, tracking ownership, and the integrity banner.
  2. Use a normal visitor browser and grant marketing consent through your configured CMP.
  3. Open a product, search, and complete a successful cart addition. Check SDK loading and the matching event requests in the browser Network panel.
  4. Check Reddit's event diagnostics or Pixel Helper, if available in your testing setup.
  5. For purchases, use an authorized test flow and inspect the browser event, conversion ID, and queue row.
  6. 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

Reddit Pixel Integration, Admin custom events

Reddit Pixel Integration, Storefront order confirmation

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

ResolvedUpdated:
Fixed in: 1.4.0
Tracking on cached pages could consume visitor-specific signup or cart information during shared page rendering.

Customer matching consent

ResolvedUpdated:
Fixed in: 1.4.0
Optional customer matching information was not consistently checked against fresh matching consent independently of event consent.

Reddit conversion pixel fires on order confirmation page reload

ResolvedUpdated:
Fixed in: 1.4.0

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

ResolvedUpdated:
Fixed in: 1.2.10
The module could fail to load on shops running PHP 7.1.

Combined storefront assets

ResolvedUpdated:
Fixed in: 1.2.8
Module assets could fail to combine correctly when PrestaShop asset optimisation was enabled.

Tracking actions on PrestaShop 9

ResolvedUpdated:
Fixed in: 1.2.8
Some tracking actions could fail on PrestaShop 9.

Missing or damaged interface translations

ResolvedUpdated:
Fixed in: 1.2.7
Some module labels remained in English or displayed damaged text when another shop language was selected.

Feature Requests

6

Implemented

Reddit Conversions API queue with event deduplication

Implemented
Queues Reddit Conversions API events with conversion IDs shared with the browser pixel. A storefront bridge handles configured custom browser events. API credentials and queue controls are configured in the module settings.

Reddit browser tracking

Implemented
Track shop activity with the configured Reddit browser pixel.

Reddit server-side conversions

Implemented
Send queued conversion events to Reddit from the server alongside browser tracking.

Custom conversion events

Implemented
Configure custom event rules and inspect conversion diagnostics.

Coordination with other Reddit integrations

Implemented
Browser and server tracking can step aside when another compatible installed module handles the Reddit pixel.

Tracking event preview in the demo

Implemented
Preview each supported tracking event in the module demo without recording real Reddit events.

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.
Launch demo shop

By downloading, you accept the demo terms and privacy policy.

By opening this demo you accept the demo terms and the privacy policy.

Loading...
Back to top