Skip to main content

The events report the wrong amounts

Your code likely sends amount in major units (dollars), but Profound reads the value as minor units (cents). GA4-style dataLayers carry major units, so this is common with Google Tag Manager. Send amount as a whole number in the currency’s smallest unit: 12999 for $129.99, not 129.99. In Google Tag Manager, convert the dataLayer value:
Replace {{DLV - value}} with a Data Layer Variable name defined in your Google Tag Manager container. If your currency doesn’t use two decimal places, adjust the * 100 multiplier to match its number of decimals.

Conversions aren’t attributed to ads

This issue can be caused by the pixel snippet running too late. If you installed the snippet manually, check that it’s placed directly inside the <head> tag of your HTML page and loads unconditionally. If you used Google Tag Manager, make sure that:
  • the Consent Settings in your tag are set to No additional consent required, as per step 2 of the install guide
  • the trigger is set to Initialization - All Pages
Learn more in step 2 of the pixel installation guide.

Page views are missing on a single-page app

The pixel doesn’t watch for route changes, so it records one page view per full page load. Call pfq('track', 'page_viewed') on each route change you want recorded. In Google Tag Manager, use a History Change trigger.

Page views are counted twice

If you installed the snippet manually, check that the snippet is placed only once per page. If you used Google Tag Manager, check that Advanced Settings > Tag firing options is set to Once per page, as per step 2 of the install guide.

Events return a 202 but don’t appear in reporting

The events are likely rejected silently: with origin enforcement on, an unknown pixel ID or an origin missing from the allowlist returns the same 202 as an accepted event. Check that the snippet has the correct pixel ID, and give your Profound team every origin you send events from: the root domain, the www variant, and any checkout or landing subdomains.

The pixel records no events at all

This can happen when the pixel is waiting for a consent signal that never comes. If your website doesn’t use a consent management platform (common for US-only sites), set the consent posture to opt-out as instructed in step 3 of the installation guide and redeploy the snippet.

An event is rejected with a 400 error

Some possible reasons for this are:
  • Profound detected personal data in the identify fields. Check that they carry only internal identifiers.
  • The event has more than 128 properties.
  • The request body of the event exceeds 64 KiB.
Learn more about the event data limitations in the Events reference.

Properties or IDs are missing from recorded events

This can be one of the following:
  • The property key or value looks like personal data, so it was dropped in the browser or on Profound’s servers.
  • If an identify field is missing, check if the property key is correctly typed.
Learn more in the Events reference.

Attribution stops after about 7 days in Safari

Safari’s Intelligent Tracking Prevention limits script-written cookies to roughly 7 days. This is browser behavior that can’t be changed. Using a different browser will fix the issue. The pixel checks each browser’s timezone and treats every visitor with a European timezone as opt-in: it records nothing until they give consent. If your pixel is scoped to a single non-EU region, or your local data protection regulations otherwise allow the opt-out posture, you can disable the check by adding detectRegion: false to the pfq('init', ...) call in your install snippet:
Learn more in Consent and privacy.