Advanced Features
Event Blocking Rules
How to block events from bots, page refreshes, double button clicks etc. being sent back to Meta
Important: Anytime you update your list of blocking rules, you need to update your script on your website and republish your website to save the changes.
Blocking Rules in PixelFlow are advanced filters that control when events should or should not be sent to Meta's conversion API.
They serve two main functions:
- To improve the data quality being sent back to Meta by preventing low-value or duplicate events from being tracked in your Meta ads manager. 
- To improve the accuracy of your reporting in Meta ads manager 
Please note, while this powerful feature can be useful in some situations, it can have downsides if used incorrectly so please ensure you read the entire article and fully understand it before using.
Why Filter or Block Events?
In most cases, you should avoid filtering out events being sent to Meta, since the algorithm improves with more data. The larger the dataset you provide (purchases, leads, micro-conversions), the better Meta becomes at finding lookalikes and refining delivery. This is particularly valuable when you are scaling or working to train new campaigns.
However, low-quality data leads to weak optimization.
If every bot click, page reload, or duplicate thank-you is tracked as a conversion, you are effectively teaching Meta to optimize for the wrong actions. This can make reported ROAS appear stronger than it truly is, while actual ROI declines.
A practical middle ground is to block obvious junk traffic (bots, repeated refreshes, fake clicks) while still passing through all legitimate conversions, even those that did not originate from Facebook or Instagram directly (such as phone orders or organic sales). These still give Meta a clearer picture of your ideal customer.
Quality matters more than sheer quantity, but the algorithm still needs a healthy flow of signals to learn effectively.
- Too much filtering leads to a lack of signals. 
- Too little filtering leads to messy optimization. 
Specific Use Cases
There are a limited number of use cases where PixelFlow users may want to block certain events being sent back to Meta.
A common use case is to block Meta events tracking by 3-rd party (non PixelFlow) scripts when PixelFlow script is installed in order to avoid duplicates. PixelFlow sends events to Meta both client and server side out of the box sharing the same event id for deduplication. Having other scripts running alongside PixelFlow which also track and send events to Meta, like Native Meta Pixel script or Webflow eCommerce Meta events tracking will produce duplicates unless appropriate blocking rule is applied.
Also it often makes sense to block page refreshes or traffic that is clearly bots. On the other hand, excluding conversions that did not originate from Meta is usually not recommended, because this reduces the data available for audience building and conversion optimization (even if you are not actively using lookalike audiences).
Some examples where blocking can be useful include:
- Only sending events that can be directly traced back to someone clicking a Facebook ad before arriving on your website, instead of allowing Meta to attribute all activity to its campaigns. 
- Preventing duplicate conversions by blocking events when a user refreshes a thank-you page or double clicks a Buy Now button. 
- Preventing 3-rd party (non PixelFlow) scripts sending duplicated events. 
- Filtering out bot traffic. 
Keep in mind that while this feature can be valuable, it should be applied with caution and only when it truly fits your situation.
Used correctly, it can significantly improve conversion attribution accuracy within Meta campaigns. Used too aggressively, it may reduce the volume of data Meta receives, limiting its ability to refine audience quality and drive more conversions.
How to Use Blocking Rules
You can use Blocking Rules in PixelFlow during the initial setup or by going to the Blocking Rules section in your dashboard overview page. Please read the explanation (below) of each rule carefully so you fully understand each one before implementing.
The best way to apply blocking rules is to combine one or two in a way that applies to your usecase - please see examples at the bottom of this page.

Blocking Rules Explained
- Global vs Event-Specific Rules: Global rules apply to all events, while event-specific rules only apply to particular events like "Purchase" or "Lead". Event-specific rules override global rules 
- Time Intervals: When using duplicate prevention rules, set an interval (seconds, minutes, or hours) to define how long to block similar events. For example 30 minutes for leads, 1 hour for purchases 
- Rule Priority: Order doesn`t matter. Every event-specific rule is self-contained and will override global rules. Use Global rules as a safety net, then add event-specific overrides as needed 
Quality Control Rules:
- Block if No Meta Click ID - fbclid- this lets you filter out traffic that did not originally come directly from clicking on a Facebook ad campaign as their "last touch". Read more on how Meta attributes events to particular campaigns here.
- Block if no URL query parameters - block events from URLs without query parameters to focus on campaign-driven traffic only. Your website may generate dymiac URLs for specific pages and you can filter any traffic that hits these pages if there are no query parameters in the URLs to ensure bot traffic is excluded. For example, if someone fills in a form on your website to book a call and the thank you page has a dyamicly generated URL like yoursite.com/book-a-call/call-booked-john-doe-8pm-24-sept, you could exclude the URL yoursite.com/book-a-call/ if no URL query parameters to avoid an event being tracked for anyone going to yoursite.com/book-a-call/ 
Duplication Prevention Rules:
- Block duplicate events from the same session (same_session) 
- Block duplicate events from same URL (same_url) 
- Block duplicate events from same referrer (same_referrer) 
- Block duplicate events from 3-rd party (non PixelFlow) scripts (external_tracking) 
Some of these are combined with timeframe option to block duplicates within a specified time interval to prevent inflated conversion numbers.
Best Practices:
- Start with simple global rules, then add event-specific overrides as needed 
- Monitor your conversion data to ensure rules aren't blocking legitimate events 
- Use shorter intervals for high-frequency events and longer intervals for valuable conversions 
Blocking Rules Examples
Example 1 - you only want Meta ads manager to attribute "Lead" events if the user came from a Facebook ad and completed that event on your website (note this will reduce the data getting fed back to Facebook to improve your ads).
In this situation you would select the "Lead" event from the dropdown list, and toggle "Block if no Meta Click ID (fbc)". This would result in PixelFlow not sending any events back to the Meta events manager unless they originally came from a Facebook ad campaign, ensuring your conversions reporting figures are accurate
Example 2 - you want to block people who are returning to the same URL you have assigned to an event (eg. /thank-you setup as a "Lead" event) from sending more duplicate events.
In this situation you would select the event (eg. "Lead") from the dropdown list and select "Block if same session" and choose the timeframe to block like 24 hours . This would stop a user who is returning with the same IP address in 24 hours from sending a duplicate event.
Example 3 - you are using Webflow eCommerce, which sends duplicated events out of the box, or you are seeing duplicated events in your Meta events manager and can not figure out where they are coming from and want to block them.
In this situation you would  select "Block duplicate Meta tracking scripts" . This would stop 3-rd party (non PixelFlow) scripts sending duplicated events to Meta.
Important: Anytime you update your list of Event URLs, you need to update your script on your website and republish your website to save the changes.
Any other questions? Get in touch