How can we reliably determine whether a Facebook post is a paid ad or an organic post using Meta APIs?
one approach I known so far is fetch all ads related data and store copy in database. and extract and match the effective_post_id.but this approach requrire a lot of effort.
is there any approach or endpoint where we can directly detect is it paid or not by post_id
thanks community
How to Identify Whether a Facebook Post Is an Ad or an Organic Post
Best answer by Sahra
Hi
You’ve touched on a common challenge! Unfortunately, you are correct—there is no single "is_paid" flag or direct endpoint that lets you look up a post_id for a simple Yes/No answer. Because Meta treats organic page data and advertising data as two separate systems, we have to look for specific "signals" to tell them apart.
While matching effective_post_id in a database is the most robust method, here are three lighter approaches you can use:
1. The "Metric Signal" Method (Best for Published Posts)
If you already have a post_id and want to know if it has been boosted, the most reliable way is to check its Insights.
-
The Logic: If a post has any value greater than zero for paid metrics (like
post_impressions_paid), it has been promoted. -
Important Note: Meta frequently updates these field names. For example, many organic and paid impression fields were deprecated or replaced in September 2024.
-
Reference: Facebook Insights Field Changes - Sept 2024
2. Identifying "Dark Posts" (Ads-Only)
If you are looking for ads that never appeared on the organic timeline, these won't show up in your regular Page Feed.
-
The Solution: Use the Facebook Ads connector and enable the advanced option "Include unpublished promotable posts."
-
The Signal: These posts often have the flag
is_inline_createdset totruein the Meta API, meaning they were created specifically for an ad campaign. -
Reference: Facebook Insights Updates & Features
3. Known API Limitations
It is worth noting that the Facebook Insights API (used for organic data) does not have a built-in feature to "tag" a post as boosted. To get the full picture, you usually have to combine data from both the Insights and Ads connectors.
-
Reference: Facebook Known Issues & Limitations
Quick Summary Table
| Post Type | Identification Signal | Recommended Source |
| Purely Organic | Paid impressions = 0 | Facebook Insights |
| Boosted Post | Paid impressions > 0 | Facebook Insights or Ads |
| Dark Post (Ad Only) | Only appears in Ads data | Facebook Ads (with Unpublished Posts enabled) |
Pro Tip: Since Meta deprecated several fields in late 2024, make sure you are using the most current metric names in your queries to avoid null values. You can track those specific changes here.
Hope this helps save you some manual effort!
Sign up
Already have an account? Login
Ask questions from other Community members, comment on other people's posts and get access to exclusive Community content by logging in.
Log in with Facebook Login with LinkedInLogin to
Supermetrics Community
Don't have an account? Sign Up
Ask questions from other Community members, comment on other people's posts and get access to exclusive Community content by logging in.
Log in with Facebook Login with LinkedInEnter your E-mail address. We'll send you an e-mail with instructions to reset your password.
