Facebook Competitor Analysis: A Method and the Tools for It
A Facebook competitor analysis answers three questions: how big are they, what works for them, and what are they paying to promote. You can answer all three from public data. This post gives you the method, a scorecard, and the tools that automate parts of it.
Step 1: pick the set
Choose 5 to 8 Pages: 3 to 4 direct competitors, 1 to 2 larger brands you aspire to, and 1 to 2 smaller ones growing fast. A mixed set keeps you from copying only the market leader.
Step 2: pull 90 days of posts
For each Page, collect the last 90 days of posts with type, date, reactions, comments, shares and video views, plus today's follower count. Ninety days is long enough to smooth out one-off spikes and short enough to reflect current strategy.
Step 3: fill the scorecard
| Metric | Formula | Tells you |
|---|---|---|
| Followers | From the Page | Size |
| Posts per week | posts / 13 | Effort |
| Format mix | % reels, images, links, text | Where they invest |
| Median engagements per post | median(reactions + comments + shares) | Typical result |
| Engagement per 1,000 followers | median engagements / followers x 1,000 | Efficiency, comparable across sizes |
| Share ratio | shares / reactions | How much content travels |
| Top 5 posts | By engagements | What their audience wants |
The engagement per 1,000 followers column is the one to sort by. A Page with 20,000 followers and 60 per 1,000 is doing better work than one with 2 million and 2 per 1,000.
Step 4: read the top posts, not just the numbers
For each competitor's top 5 posts, write one line: topic, format, hook, call to action. After 30 lines you will see patterns: maybe how-to reels beat product photos for everyone, or maybe one competitor wins with customer stories. That is your content plan.
Step 5: check their ads
Organic posts show half the strategy. Meta's Ad Library lets anyone search "all active ads running across products from Meta" Meta Ad Library tools. Look at each competitor's active ads: how many, which formats, which offers, and how long each has been running. An ad that has run for months is probably profitable. Our guide to the Meta Ad Library API covers what you can pull programmatically.
Step 6: repeat monthly
A single snapshot tells you where competitors stand. Monthly snapshots tell you who is gaining. Keep the scorecard in one sheet with a tab per month.
End each round with three decisions, not a report: one format to test next month, one topic to try that a competitor wins with, and one thing to stop doing because nobody in your market gets results from it. Then check next month whether the test moved your own engagement per 1,000 followers.
Code: the scorecard for one Page
import datetime, os, statistics, requests
KEY = os.environ["SCRAPEIO_API_KEY"]
H = {"x-api-key": KEY}
API = "https://scrapeio.com/v1/facebook"
def scorecard(page, days=90):
prof = requests.get(API + "/profile", params={"url": page}, headers=H, timeout=60).json()["data"]
since = (datetime.datetime.utcnow() - datetime.timedelta(days=days)).isoformat()
posts, cursor = [], None
while True:
p = {"url": page, **({"cursor": cursor} if cursor else {})}
d = requests.get(API + "/profile/posts", params=p, headers=H, timeout=60).json()["data"]
fresh = [x for x in d["items"] if (x.get("created_at") or "") >= since]
posts += fresh
if not d["has_more"] or len(fresh) < len(d["items"]):
break
cursor = d["cursor"]
eng = [(x.get("likes") or 0) + (x.get("comments") or 0) + (x.get("shares") or 0) for x in posts]
med = statistics.median(eng) if eng else 0
return {"page": page, "followers": prof.get("followers"), "posts_per_week": round(len(posts) / (days / 7), 1),
"median_eng": med, "eng_per_1k": round(med / max(prof.get("followers") or 1, 1) * 1000, 2)}
print(scorecard("https://www.facebook.com/patagonia"))
Tools that automate this
- Fanpage Karma has a free plan with 5 competitor profiles plans.
- Metricool's free plan analyzes 5 competitor profiles pricing.
- Socialinsider includes competitor benchmarking on every plan, from $82 a month pricing.
- Rival IQ is built around benchmarking, from $239 a month for 10 companies pricing.
If a dashboard covers your set and your metrics, use it. Build your own when you need more Pages, a metric the tools don't have, or the data in your own database.
How to do it with ScrapeIO
The script uses the Facebook profile API and the Facebook profile posts API. For ads, the Facebook Ad Library company ads API lists a Page's ads with status and media filters. Six competitors over 90 days usually takes a few dozen calls. The same code works for Instagram and TikTok because field names are the same on every platform.
Sources
Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
- https://transparency.meta.com/researchtools/ad-library-tools/
- https://app.fanpagekarma.com/plans
- https://metricool.com/pricing/
- https://www.socialinsider.io/pricing
- https://www.rivaliq.com/pricing/
100 free credits, no card. Credits never expire.
Get API key