Back to Blog
General

Google Ad Library Scraper API: Research Google Ads & Competitor Strategies

February 28, 2026
5 min read
S
By SociaVault Team
googlead librarygoogle adscompetitor researchapi

Google Ad Library Scraper API: Research Competitor Google Ads

Google's Ad Transparency Center reveals what advertisers are running across Google's network. This guide shows you how to research competitor advertising strategies.

EndpointDescription
Company AdsGet ads from a company domain
Ad DetailsGet detailed ad information
Search AdvertisersFind advertisers by name

Get Company Ads

Find all ads from a company:

const response = await fetch('https://api.sociavault.com/google-ad-library/company-ads', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    domain: 'nike.com'
  })
});

const ads = await response.json();

Response

{
  "advertiser": {
    "name": "Nike",
    "domain": "nike.com",
    "verificationStatus": "verified",
    "totalAds": 1250
  },
  "ads": [
    {
      "id": "AR123456789",
      "format": "display",
      "size": "300x250",
      "lastShown": "2026-01-08",
      "firstShown": "2025-12-15",
      "regions": ["US", "CA", "UK"],
      "previewUrl": "https://...",
      "targetUrl": "https://nike.com/sale",
      "creative": {
        "type": "image",
        "url": "https://..."
      }
    }
  ],
  "hasMore": true
}

Search Advertisers

Find advertisers in the library:

const response = await fetch('https://api.sociavault.com/google-ad-library/search-advertisers', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    query: 'nike'
  })
});

const advertisers = await response.json();

Response

{
  "advertisers": [
    {
      "id": "AR987654321",
      "name": "Nike, Inc.",
      "domain": "nike.com",
      "verificationStatus": "verified",
      "activeAdsCount": 1250
    }
  ]
}

Ad Details

Get comprehensive information about a specific ad:

const response = await fetch('https://api.sociavault.com/google-ad-library/ad-details', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://adstransparency.google.com/advertiser/AR123456789'
  })
});

const adDetails = await response.json();

Use Cases

Competitor Ad Research

Analyze competitor Google Ads campaigns:

async function analyzeCompetitor(domain) {
  const { advertiser, ads } = await getCompanyAds(domain);
  
  return {
    company: advertiser.name,
    totalAds: advertiser.totalAds,
    formats: countFormats(ads),
    regions: [...new Set(ads.flatMap(a => a.regions))],
    recentAds: ads.filter(a => 
      new Date(a.lastShown) > new Date(Date.now() - 7 * 24 * 60 * 60 * 1000)
    ).length
  };
}

function countFormats(ads) {
  const formats = {};
  ads.forEach(ad => {
    formats[ad.format] = (formats[ad.format] || 0) + 1;
  });
  return formats;
}

Display Ad Analysis

Study display ad creative:

async function analyzeDisplayAds(domain) {
  const { ads } = await getCompanyAds(domain);
  
  const displayAds = ads.filter(a => a.format === 'display');
  
  // Group by size
  const bySizes = {};
  displayAds.forEach(ad => {
    bySizes[ad.size] = (bySizes[ad.size] || 0) + 1;
  });
  
  return {
    totalDisplayAds: displayAds.length,
    sizes: bySizes,
    mostCommonSize: Object.entries(bySizes)
      .sort((a, b) => b[1] - a[1])[0][0]
  };
}

Geographic Targeting

Analyze where competitors advertise:

async function analyzeRegions(competitors) {
  const regionData = {};
  
  for (const domain of competitors) {
    const { ads } = await getCompanyAds(domain);
    
    const regions = {};
    ads.forEach(ad => {
      ad.regions.forEach(r => {
        regions[r] = (regions[r] || 0) + 1;
      });
    });
    
    regionData[domain] = regions;
  }
  
  return regionData;
}

Campaign Timeline

Track when competitors run campaigns:

async function trackCampaignTimeline(domain) {
  const { ads } = await getCompanyAds(domain);
  
  const timeline = ads.map(ad => ({
    id: ad.id,
    startDate: ad.firstShown,
    endDate: ad.lastShown,
    durationDays: Math.ceil(
      (new Date(ad.lastShown) - new Date(ad.firstShown)) / (1000 * 60 * 60 * 24)
    )
  }));
  
  // Group by month
  const byMonth = {};
  timeline.forEach(ad => {
    const month = ad.startDate.substring(0, 7);
    byMonth[month] = (byMonth[month] || 0) + 1;
  });
  
  return { timeline, byMonth };
}

Landing Page Analysis

Study where ads drive traffic:

async function analyzeLandingPages(domain) {
  const { ads } = await getCompanyAds(domain);
  
  const landingPages = {};
  ads.forEach(ad => {
    const path = new URL(ad.targetUrl).pathname;
    landingPages[path] = (landingPages[path] || 0) + 1;
  });
  
  const topPages = Object.entries(landingPages)
    .sort((a, b) => b[1] - a[1])
    .slice(0, 10);
  
  return {
    uniquePages: Object.keys(landingPages).length,
    topPages
  };
}

Combining with Other Sources

Cross-reference with other ad libraries:

async function fullAdAudit(company) {
  // Get ads from all platforms
  const [googleAds, facebookAds, linkedInAds] = await Promise.all([
    getGoogleAds(company.domain),
    getFacebookAds(company.name),
    getLinkedInAds(company.name)
  ]);
  
  return {
    google: {
      total: googleAds.ads.length,
      formats: countFormats(googleAds.ads)
    },
    facebook: {
      total: facebookAds.ads.length,
      platforms: countPlatforms(facebookAds.ads)
    },
    linkedin: {
      total: linkedInAds.ads.length
    },
    totalAcrossAll: googleAds.ads.length + facebookAds.ads.length + linkedInAds.ads.length
  };
}

Frequently Asked Questions

What ad types are included?

The Google Ad Transparency Center includes Search, Display, YouTube, and other Google network ads.

How far back does the data go?

Google stores ad data for varying periods depending on ad type. Display ads are typically available for several months.

Can I see ad spend?

Unlike Facebook's Ad Library, Google doesn't publicly share spend data. You can estimate based on ad volume and duration.

Are all advertisers included?

Verified advertisers running Google Ads are included. Political and issue ads have additional transparency requirements.

What regions are covered?

The Ad Transparency Center covers ads running globally across Google's platforms.

Get Started

Sign up free and start researching Google ads.

Documentation: /docs/api-reference/google-ad-library/company-ads

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.