Microsoft Ads Library Scraper: Bing Ads & Impressions avatar

Microsoft Ads Library Scraper: Bing Ads & Impressions

Pricing

from $1.50 / 1,000 ads

Go to Apify Store
Microsoft Ads Library Scraper: Bing Ads & Impressions

Microsoft Ads Library Scraper: Bing Ads & Impressions

Scrape the Microsoft (Bing) Ads Library: every Bing search ad an advertiser ran in the EU/EEA, with ad copy, URLs, images and optional details (first/last shown, impressions range, impressions by country, targeting). Official public API, no login. $1.50 per 1,000 ads. Unofficial.

Pricing

from $1.50 / 1,000 ads

Rating

0.0

(0)

Developer

Kyungmin Lee

Kyungmin Lee

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

What does Microsoft Ads Library Scraper do?

Microsoft Ads Library Scraper pulls every Bing search ad an advertiser has run in Europe out of the Microsoft Ads Library, Microsoft's public ad transparency database. Type a brand name (Nike, Booking) or paste advertiser IDs. You get each ad as a clean row: headline, description, display URL, landing page, images, the advertiser's verified identity and a link to the ad's Library page. Turn on ad details to also get first and last shown dates, total impressions range (with numeric min/max), impression share by country, targeting types and who paid for the ad.

It calls Microsoft's publicly documented Ad Library API (adlibrary.api.bingads.microsoft.com) without any account, login or browser, so runs are fast and cheap. The Library covers ads shown in the European Economic Area (EU + Iceland, Liechtenstein, Norway) since June 2023.

Using Google too? Pair this Actor with Google Ads Transparency Center Scraper for Google + Bing search ads transparency with the same workflow and field names.

Why use Microsoft Ads Library Scraper?

  • PPC competitor research: see every Bing/Microsoft Advertising ad a competitor runs, their copy, landing pages and which EU markets they target.
  • Agency reporting: schedule a weekly run per client or competitor and send new ads to Sheets, Slack or your dashboard.
  • Reach estimates: impressions ranges and per-country impression shares show where a campaign actually ran and how big it was.
  • Compliance and brand protection: find advertisers using your brand in their ads and check "paid for by" and restriction information published under the EU Digital Services Act.
  • Ad copy datasets: collect thousands of real search ad headlines and descriptions for creative research or AI training.

How to use Microsoft Ads Library Scraper

  1. Enter one or more Advertiser names (for example Nike) or Advertiser IDs / advertiser page URLs.
  2. Optionally pick Countries (Germany, FR, NL...) and a date window (Shown from / Shown until, absolute or relative like 30 days).
  3. Set Max ads per advertiser (default 100) and switch on Include ad details if you need dates, impressions and targeting.
  4. Click Start. Ads appear in the Dataset tab; export JSON, CSV, Excel or HTML, or read them through the Apify API.

Each name is resolved to the best-matching advertiser account. Microsoft's own search also returns unrelated names that merely contain your text ("nike" inside "Kliniken"); the Actor ignores those and logs which advertiser it picked. Raise Advertisers per name to include sister accounts (for example several Booking.com B.V. accounts).

Input

FieldTypeDefaultDescription
advertiserNamesarray["Nike"] (prefill)Brand or company names; IDs and advertiser URLs also work
maxAdvertisersPerNameinteger1Matching advertiser accounts to scrape per name
advertiserIdsarray–Numeric IDs (4295000966) or https://adlibrary.ads.microsoft.com/advertiser/... URLs
countriesarrayall EU/EEANames, ISO codes or Microsoft codes; with no advertiser, lists all advertisers' ads there
dateFrom, dateTostring–YYYY-MM-DD or relative (30 days, 3 months)
maxAdsPerQueryinteger100Max ads per advertiser (up to 10,000)
includeAdDetailsbooleanfalseDates, impressions, country shares, targeting, paid-for-by
keywordsarray–Experimental keyword search in ad copy (see FAQ)
proxyConfigurationobjectoffApify Proxy, only if you see repeated rate limits
{
"advertiserNames": ["Nike", "Booking"],
"countries": ["Germany", "FR"],
"dateFrom": "3 months",
"maxAdsPerQuery": 200,
"includeAdDetails": true
}

Output

One dataset item per ad (duplicates removed by adId):

{
"adId": "79852171128411",
"advertiserId": "4294969411",
"advertiserName": "Booking.com B.V.",
"advertiserCountry": "Netherlands",
"advertiserVerified": true,
"title": "Mercato Centrale Florence - Mejor Precio Garantizado",
"description": "Booking.com Web Oficial – Hotel. Reserva Fácil, Rápida, Segura y Con Confirmación Inmediata.",
"displayUrl": "www.booking.com",
"destinationUrl": "https://www.booking.com/hotel/it/piazza-del-mercato-centrale.es.html?aid=2276447",
"landingDomain": "booking.com",
"imageUrls": [],
"detailsIncluded": true,
"paidForBy": null,
"firstShown": "2024-02-27",
"lastShown": "2026-08-03",
"daysShown": 889,
"impressionsRange": "100 - 250",
"impressionsMin": 100,
"impressionsMax": 250,
"impressionsByCountry": [
{ "country": "Spain", "countryCode": "ES", "impressionSharePercent": 97.8 },
{ "country": "Italy", "countryCode": "IT", "impressionSharePercent": 2.2 }
],
"targetingTypes": ["Location", "MicrosoftAudiences"],
"targetingExcludedTypes": ["Location"],
"restrictionReason": null,
"libraryUrl": "https://adlibrary.ads.microsoft.com/ad/79852171128411",
"advertiserLibraryUrl": "https://adlibrary.ads.microsoft.com/advertiser/4294969411",
"searchType": "advertiserName",
"searchQuery": "Booking",
"scrapedAt": "2026-10-15T03:07:09+00:00"
}

A SUMMARY record in the run's key-value store lists which advertiser each name matched, how many ads Microsoft reports per query, and the events charged.

Data fields

FieldDescription
adId, libraryUrlMicrosoft ad ID and its public Ad Library page
advertiserId, advertiserName, advertiserLibraryUrlAdvertiser account or verified legal entity
advertiserCountry, advertiserVerifiedRegistration country and verification status (filled for advertisers you search by name or ID)
title, description, displayUrlAd copy as shown on Bing (for dynamic ads, a recent representative version)
destinationUrl, landingDomainLanding page and its domain
imageUrls, assetsImages attached to the ad (shopping and multimedia ads)
firstShown, lastShown, daysShownFirst/last recorded EEA impression (details only)
impressionsRange, impressionsMin, impressionsMaxTotal EEA impressions bucket, e.g. 250K - 500K, plus numbers (details only)
impressionsByCountryImpression share per EU/EEA country (details only)
targetingTypes, targetingExcludedTypesTargeting used: Location, Age, Gender, MicrosoftAudiences, AdvertiserAudiences (details only)
paidForBy, restrictionReasonPayer if different from the advertiser; why an ad was restricted (details only)
searchType, searchQueryWhich of your inputs produced the ad

Pricing

Pay per event, no subscription. You pay only for ads saved to the dataset:

EventPriceWhen
ad$1.50 per 1,000 ads ($0.0015 each)Each ad saved without details
ad-details$2.00 per 1,000 ads ($0.002 each)Each ad saved with details (charged instead of ad)

Examples: one competitor's 100 newest ads ≈ $0.15; 1,000 ads with full details ≈ $2.00. Unknown advertisers, empty searches, failed requests and the experimental keyword search are never charged. Ads whose details Microsoft refuses to return are still saved and charged at the ad price. Set a maximum charge per run and the Actor stops exactly there.

Tips

  • Use the legal or account name shown on adlibrary.ads.microsoft.com when a brand name is ambiguous, or paste the advertiser ID.
  • Microsoft returns at most 1,000 ads for one query and its pages overlap. The Actor removes duplicates and, when you ask for more than one query can give, splits the query by country and date range automatically.
  • Listing ads is quick (about 1,000 ads in 5-8 minutes). Details need one rate-limited request per ad (roughly 5 s each), so 100 ads with details take about 8-10 minutes.
  • Schedule a weekly run with dateFrom: "7 days" to track only recent ads.
  • For a few very large advertisers (for example Booking.com) Microsoft's API never answers when countries and dates are combined. The Actor detects this, skips that advertiser without charging and tells you; run it again with only countries or only a date range.
  • Leave the proxy off. The Actor already spaces requests and backs off on HTTP 429.

FAQ

Is this an official Microsoft product? No. This is an unofficial tool, not affiliated with or endorsed by Microsoft. It uses Microsoft's publicly documented, unauthenticated Ad Library API and returns only what Microsoft publishes for transparency.

Which ads are included? Ads shown on Bing in the EU/EEA, recorded since June 2023. Ads shown only outside Europe (for example US-only campaigns) are not in the Library.

Can I search by keyword in ad copy? Not right now. Microsoft's keyword search endpoint currently fails on their server (HTTP 500 or timeout). The Actor tries it once, logs a warning, skips keywords and charges nothing for them. It will work automatically once Microsoft fixes it. Until then, search by advertiser name, ID or country.

Do I get spend or clicks? No. Microsoft publishes impressions ranges and country shares, not spend or clicks.

Is it legal? The data is published by Microsoft for anyone to view without login under the EU Digital Services Act. You are responsible for how you use it. Advertiser names are the business identities Microsoft discloses; no other personal data is collected.

Something broken or missing? Open an issue in the Issues tab with your input and we will fix it quickly.