Back to Blog
Advertising

How Lead-Gen Agencies Reverse-Engineer Winning Ad Angles From Public Ad Libraries

July 24, 2026
8 min read
S
By SociaVault Team
AdvertisingLead GenerationAd LibraryPerformance MarketingCompetitive Intelligence

How Lead-Gen Agencies Reverse-Engineer Winning Ad Angles From Public Ad Libraries

Every performance marketer knows the shortcut nobody says out loud: the best ad ideas already exist, running right now, in someone else's account. If a competitor has been running the same ad for three months, they didn't leave it up out of sentiment. It's making money. The public ad libraries hand you those winners for free, if you know how to read them past "look, an ad."

This isn't about copying creative. It's about extracting the angle, the hook, the offer structure, the call to action, that a proven ad is built on, and testing your own version. Here's the workflow agencies actually use.

Why ad longevity is the signal

You can't see a competitor's ROAS. But you can see how long an ad has been running, and for direct-response advertisers, that's a strong proxy. Performance advertisers kill losers fast. An ad that's been live for weeks or months survived that culling, which means it's converting well enough to keep funding. Longevity is the closest public stand-in for "this works."

So the whole method reduces to: find the ads that have been running longest, then dissect what they have in common. We'll use SociaVault to query the libraries, new accounts get 50 free credits, and each lookup is one credit.

const API_KEY = process.env.SOCIAVAULT_API_KEY;
const BASE = "https://api.sociavault.com/v1";
const headers = { "x-api-key": API_KEY };

async function metaAds(query) {
  const res = await fetch(
    `${BASE}/scrape/facebook-ad-library/search?query=${encodeURIComponent(query)}`,
    { headers },
  );
  const json = await res.json();
  if (!json.success) throw new Error(json.error);
  return json.data;
}

You can run the same pattern against TikTok (/scrape/tiktok-ad-library/search), Google (/scrape/google-ad-library/...), and LinkedIn (/scrape/linkedin-ad-library/search) for a full-channel picture. The cross-platform ad library guide covers the differences.

Step 1: rank ads by how long they've run

Pull a competitor's (or a whole category's) ads and sort by run duration. The libraries expose start dates; compute the age and the longevity leaderboard writes itself.

function byLongevity(ads) {
  const now = Date.now();
  return ads
    .map((ad) => {
      const start = new Date(ad.start_date ?? ad.startDate ?? ad.created_time).getTime();
      const daysLive = start ? Math.round((now - start) / 86400000) : null;
      return {
        advertiser: ad.page_name ?? ad.advertiser ?? null,
        daysLive,
        body: ad.ad_creative_body ?? ad.text ?? ad.caption ?? "",
        cta: ad.cta_text ?? ad.call_to_action ?? null,
      };
    })
    .filter((a) => a.daysLive != null)
    .sort((a, b) => b.daysLive - a.daysLive);
}

Field names differ across libraries, so read defensively with the ?? fallbacks and log one raw response to confirm what your target library returns. The top of that sorted list is your set of proven angles.

Step 2: extract the recurring hooks

Winners share DNA. Take the longest-running ads' opening lines, the first sentence is the hook, and look for the patterns that keep showing up: a question, a bold claim, a number, a callout to a specific audience.

function hooks(rankedAds, topN = 20) {
  return rankedAds.slice(0, topN).map((ad) => {
    const firstLine = (ad.body || "").split(/[.!?\n]/)[0].trim();
    return { advertiser: ad.advertiser, daysLive: ad.daysLive, hook: firstLine };
  });
}

Read the top 20 hooks together and the formula jumps out. Maybe every long-runner in your niche opens with a specific pain point, or a "tired of X?" question, or a hard number ("Book 30 calls a month"). That recurring structure is the angle you test, not the exact words.

Step 3: map the offer and CTA structure

Beyond the hook, catalog how the winners frame the offer and what action they push. Lead-gen ads especially tend to converge on a few CTA patterns (free quote, book a call, instant estimate). Count them:

function ctaBreakdown(rankedAds) {
  const counts = {};
  for (const ad of rankedAds) {
    const cta = (ad.cta || "unknown").toLowerCase();
    counts[cta] = (counts[cta] ?? 0) + 1;
  }
  return Object.entries(counts).sort((a, b) => b[1] - a[1]);
}

If "get a free quote" dominates the long-runners in your vertical, that's the market telling you what converts. You don't have to guess your CTA, the survivors already voted.

Step 4: turn it into a test backlog, not a copy job

The output is a prioritized list of angles to test, ranked by how proven they are: the hook pattern, the offer frame, the CTA. Write your own creative around each, respecting your brand and, obviously, the truth of your offer, and run them. You've skipped the expensive part of media buying, the cold-start guessing, and started from angles with public evidence behind them.

This is a different job from ongoing monitoring. If you also want alerts when a competitor launches something new, that's covered in competitor ad monitoring software, and spotting when their winners start to tire is in detecting creative fatigue from ad library snapshots.

What this can't do

  • Longevity is a proxy, not proof. A long-running ad is probably profitable, but a big brand can run a mediocre ad for months for reasons that have nothing to do with ROAS. Weight it, don't worship it.
  • You can't see spend or results. The libraries show creative and dates, not budget, conversions, or cost per lead. Any performance you infer is an estimate, label it as one.
  • Coverage varies by region and category. Ad libraries have different disclosure rules per country, and some categories (political, housing, credit) are handled differently. Don't assume a complete picture.
  • Copying creative is a legal and strategic mistake. Reverse-engineer the angle, not the assets. Lifting someone's exact copy or images invites trademark and copyright trouble, and rarely works anyway because context differs.

Used honestly, it's the fastest way to shortcut the "what angle even works here?" phase, which is where most lead-gen budgets get burned.

Who this is for

  • Performance and lead-gen agencies building a launch angle for a new client without a month of cold testing.
  • In-house growth teams entering a new vertical who need proven messaging fast.
  • Founders running their own ads who want to start from what works instead of a blank canvas.

Frequently Asked Questions

How do I find a competitor's best-performing ads?

You can't see their results directly, but you can rank their ads in the public ad library by how long each has been running. Direct-response advertisers cut losers quickly, so long-running ads are a strong proxy for winners. Dissect those for the hook, offer, and CTA.

Yes. The ad libraries are public transparency tools that platforms built specifically so anyone can see active ads. Reading them is fine. Copying a competitor's exact creative, though, can raise copyright and trademark issues, extract the angle, not the assets.

Which ad libraries can I query?

Meta (Facebook and Instagram), TikTok, Google, and LinkedIn all publish public ad libraries you can query programmatically. Coverage and available fields differ by platform and region.

Why does ad longevity indicate success?

Because performance advertisers monitor cost per result closely and pause ads that don't pay off. An ad that stays live for weeks or months has survived that filtering, which usually means it's converting well enough to keep funding.

Can I see how much a competitor spends on ads?

Not precisely. The libraries show creative and run dates, and some regions add rough spend ranges for certain ad types, but you won't get exact budgets or cost-per-lead. Treat any spend figure as an estimate.

How many credits does this take?

One credit per library lookup. Researching a vertical thoroughly might take a few dozen calls across platforms. New accounts start with 50 free credits, enough to run a first angle-mining pass at no cost.

Wrapping up

The public ad libraries are a cheat sheet for anyone doing paid acquisition: the winning angles in your market are sitting there, marked by the one signal advertisers can't hide, longevity. Rank by run time, extract the recurring hooks and CTAs, and build your test backlog from proven structures instead of guesses. Just reverse-engineer the angle, never the assets, and remember longevity is a strong hint, not a guarantee.

Want to mine winning ad angles in your vertical? Start free with SociaVault, 50 credits, no card, and pull your first ad library results in a couple of minutes.


Found this helpful?

Share it with others who might benefit

Ready to Try SociaVault?

Start extracting social media data with our powerful API. No credit card required.