# Snapchat Ads Gallery Scraper (`aboo.script/adsgallery-snap-scraper`) Actor

\[💰$3.5 / 1K] ⚡ Fast Snapchat Ads Gallery scraper. No login, no API key. Search many advertisers at once or paste gallery URLs, filter by EU country, status and date. Get headlines, CTAs, video links, landing pages, impressions per country, targeting, app and product ads.

- **URL**: https://apify.com/aboo.script/adsgallery-snap-scraper.md
- **Developed by:** [Aboo Script](https://apify.com/aboo.script) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.45 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Snapchat Ads Gallery Scraper

![Snapchat Ads Gallery Scraper](https://i.ibb.co/zHDrT7Ys/adsgallery-snap-banner.png)

**Snapchat Ads Gallery Scraper** extracts Snapchat ads from the [Snap Ads Gallery](https://adsgallery.snap.com/) into clean, structured data you can download as JSON, CSV, Excel, or HTML. Type an advertiser name or paste an Ads Gallery URL, and get the headline, call to action, video or image link, landing page, impressions per country, audience targeting, and status of every ad. No account or login required.

### Introduction

The [Snap Ads Gallery](https://adsgallery.snap.com/) is Snapchat's public ad library. It lists the ads delivered in the European Union and Turkey over the last 12 months, with who paid for them, how many people saw them in each country, and which audience they targeted.

This Snapchat ad library scraper collects the same public information you see in your browser and turns it into a ready-to-use dataset. Search many advertisers at once, filter by country, status, and date, run it once or on a schedule, and connect the results to your own tools.

### What data can you extract from the Snap Ads Gallery?

- 🔗 Direct link to every ad in the gallery, plus the ad ID and ad name
- 🏢 Paying advertiser, brand, Snapchat profile name and logo, ad account, and creator profile
- 📝 Headline, call to action, languages, creative type, ad type, and media type
- 🎬 Video, image, or lens link of the ad, and lens preview image and video
- 🌐 Landing page URL and deep link
- 📊 Total impressions and impressions per country
- 🎯 Targeting: age range, gender, languages, devices, and operating systems
- 📅 Start and end date, delivery status, review status, and rejection reasons
- 📱 App install details: app name, App Store ID, Google Play ID, and end card media
- 🛍️ Catalog products shown in dynamic product ads: title, description, brand, link, availability, categories, colors, and images
- 🎞️ Every snap of story ads and the media of collection ads

### Use Cases

- 🕵️ **Competitor monitoring**: see which ads your competitors run on Snapchat, in which countries, and how many impressions they get.
- 🎨 **Creative research**: collect videos, headlines, and calls to action that brands use to find ideas for your own campaigns.
- 📈 **Market research**: compare ad activity across brands, industries, and EU countries.
- 🎯 **Audience insights**: learn which age groups, genders, and devices advertisers target.
- 🔍 **Compliance and journalism**: review rejected ads and track advertisers for transparency reports.
- 🤖 **AI and automation**: feed clean, structured ad data into spreadsheets, dashboards, or AI workflows.

### How to scrape the Snap Ads Gallery step by step

1. Type one or more advertiser names into **Advertiser names**, or paste Ads Gallery URLs into **Start URLs**.
2. Optionally choose **Countries**, **Ad status**, **Running from**, and **Running until** to narrow the advertiser search.
3. Set **Maximum number of results** to how many ads you want per advertiser or URL.
4. Click **Start** and wait for the run to finish.
5. Download your data in JSON, CSV, Excel, or HTML from the **Output** tab.

### Input

- **Start URLs**: Snap Ads Gallery URLs. Supported pages: an advertiser search (for example `https://adsgallery.snap.com/?advertiser=nike&country=FR&status=ACTIVE`) and a single ad (`https://adsgallery.snap.com/?adId=...`). The country, status, and date filters in the URL are kept.
- **Advertiser names**: names of the advertisers (the entity that paid for the ads), one per line. Partial names work, for example `amazon`. Each name is scraped separately.
- **Countries**: only ads shown in these countries. Leave empty for all countries. You can pick several countries at once.
- **Ad status**: all, active, or paused ads.
- **Running from** and **Running until**: only ads that were running during this period.
- **Maximum number of results**: how many ads to collect for each start URL or advertiser name. Set `0` for no limit.

The country, status, and date filters apply to advertiser names; start URLs keep the filters from the URL. You can use start URLs, advertiser names, or both in the same run.

### Input Examples

Scrape an advertiser search from the Ads Gallery:

```json
{
  "startUrls": [{ "url": "https://adsgallery.snap.com/?advertiser=nike&country=EU&status=ALL" }],
  "maxResults": 5
}
```

Search by advertiser name:

```json
{
  "searchQueries": ["amazon"],
  "maxResults": 5
}
```

Active ads of two advertisers in France and Germany since September 2026:

```json
{
  "searchQueries": ["tinder", "spotify"],
  "countries": ["FR", "DE"],
  "status": "ACTIVE",
  "startDate": "2026-09-01",
  "maxResults": 50
}
```

### Output

Each ad is saved as one item in the dataset. Here is an example of a single item:

```json
{
  "url": "https://adsgallery.snap.com/?adId=5da50d7b-40ca-41fd-8350-e115f967af94",
  "adId": "5da50d7b-40ca-41fd-8350-e115f967af94",
  "adName": "es_1080x1920_na_websiteconversion_arlens_q126arlens+arlens+na+randomizer+q126launch+20260224+na+3mf+es",
  "advertiserName": "Spotify USA Inc.",
  "brandName": "Spotify",
  "profileName": "Spotify",
  "profileLogoUrl": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvamtTejQ0VjVndEFtYUtHU04yaWs2P2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,72_FMjpeg",
  "adAccountName": "ONESocial Premium Evergreen 2",
  "creatorName": null,
  "status": "Active",
  "reviewStatus": "Approved",
  "rejectionReasons": [],
  "creativeType": "LENS_WEB_VIEW",
  "adType": "LENS_REMOTE_WEBPAGE",
  "renderType": "STATIC",
  "headline": "Spotify",
  "callToAction": "Sign Up",
  "mediaType": "LENS_PACKAGE",
  "mediaUrl": "https://storage.googleapis.com/community-lens/lens-packages/45f6f41c-5ff6-4461-93d2-269630e5f7c5.lens",
  "landingPageUrl": "https://www.spotify.com/premium/?utm_source=snapchat_es_2p_broad_webconversion_&utm_medium=paidsocial_&utm_campaign=2026q1_performance_single_premiumbusiness_evergreenpremium3mf_es+es+see+eur+20260224+snapchat+bau+arlens",
  "deepLinkUrl": null,
  "languages": ["es"],
  "startDate": "2026-02-24T14:00:00.000Z",
  "endDate": null,
  "impressionsTotal": 1146423,
  "impressionsByCountry": [{ "country": "ES", "impressions": 1146423 }],
  "targeting": {
    "regulatedContent": false,
    "demographics": [
      {
        "minAge": 18,
        "ageGroups": [],
        "languages": [],
        "advancedDemographics": []
      }
    ],
    "devices": []
  },
  "app": null,
  "snaps": [],
  "products": [],
  "lensPreviewImageUrl": "https://lens-preview-storage.storage.googleapis.com/previewmedia/preview_image/ead3f499-bfb9-4972-8c5a-ed0a58e63186.webp",
  "lensPreviewVideoUrl": "https://community-lens.storage.googleapis.com/preview-media/final/ead3f499-bfb9-4972-8c5a-ed0a58e63186.mp4",
  "collectionMediaUrls": []
}
```

App install ads fill `app` (name, App Store ID, Google Play ID, media), story ads fill `snaps` (one entry per snap with its headline, media, and landing page), and dynamic product ads fill `products` (one entry per catalog product).

You can download the dataset in JSON, CSV, Excel, XML, or HTML, or access it through the Apify API.

### Notes

- The Snap Ads Gallery covers ads delivered in the European Union and Turkey during the last 12 months. Ads shown only in other countries are not listed.
- Searching by advertiser name matches partial names, so a short name can also return other advertisers that contain it (for example `nik` also finds `Veknika Inc.`).
- Some ads in the gallery do not show the paying advertiser, profile, or brand; those fields are returned as `null`.
- The date filters return ads that were running during the period, not only ads that started in it. Dates after today are not accepted.
- Greece uses the code `EL` in the gallery.
- The **Commercial Content** tab (creator sponsored content) is not supported; those URLs are skipped.
- `targeting` follows the gallery's own structure, so its content differs from ad to ad.
- The gallery sometimes loads more pages slowly, so large searches can take a few minutes.

### Why use the Snapchat Ads Gallery Scraper?

- ✅ **No login needed**: works with public data only, so there is no account to manage.
- 📋 **Many advertisers in one run**: add a list of advertiser names instead of searching one by one.
- 🌍 **Several countries at once**: filter by any mix of EU countries and Turkey.
- 🎯 **Keeps your filters**: paste any Ads Gallery URL from your browser and get the same ads.
- 🧹 **Clean data**: numbers are real numbers, dates use one standard format, and impressions are split per country.
- 🔄 **Ready for automation**: schedule runs, export to Google Sheets, or connect to Make, Zapier, and n8n.

### FAQ

#### How many ads can I scrape?

Set any number in **Maximum number of results**, or `0` for no limit. The actor keeps going until it reaches your limit or the gallery has no more ads for that search.

#### Do I need a Snapchat account?

No. The actor only collects publicly available data from the Ads Gallery. You do not need to log in or provide any account details.

#### Can I download the ad videos and images?

Yes. `mediaUrl` and the media links in `snaps`, `app`, `products`, and `collectionMediaUrls` point to the files of each ad, so you can download them.

#### Can I scrape ads on a schedule?

Yes. Use Apify Schedules to run the actor every day or week and get fresh ads automatically.

#### Can I request a new feature or filter?

Yes. Right now the actor supports advertiser names, Ads Gallery URLs, and country, status, and date filters. If you need other inputs, such as the Commercial Content tab, get in touch and they can be added.

#### Can I get a custom or private version?

Yes. The actor can be customized for your workflow, delivered as a private version, or a new scraper can be built for a different website. Use the contact details below.

***

**Need help or want a custom solution?**

- 📧 Email: aboo.script@gmail.com
- 🧩 More scrapers: [Apify profile](https://apify.com/aboo.script)

### Image Credit

Image credit: [Snap Ads Gallery](https://adsgallery.snap.com/)

# Actor input Schema

## `startUrls` (type: `array`):

Snap Ads Gallery URLs: a search with an advertiser (filters in the URL are kept) or an ad detail URL with adId.

## `searchQueries` (type: `array`):

Advertiser (paying entity) names to search in the Ads Gallery. Partial names work, e.g. "amazon". Each name is scraped separately.

## `countries` (type: `array`):

Only ads shown in these countries. Leave empty for all countries. Applies to advertiser names; start URLs keep their own filters.

## `status` (type: `string`):

Only active or paused ads. Applies to advertiser names; start URLs keep their own filters.

## `startDate` (type: `string`):

Only ads running on or after this date (YYYY-MM-DD). Applies to advertiser names; start URLs keep their own filters.

## `endDate` (type: `string`):

Only ads running on or before this date (YYYY-MM-DD). Applies to advertiser names; start URLs keep their own filters.

## `maxResults` (type: `integer`):

Maximum number of ads to scrape per start URL or advertiser name. Set 0 for no limit.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://adsgallery.snap.com/?advertiser=nike&country=EU&status=ALL"
    }
  ],
  "searchQueries": [
    "amazon"
  ],
  "status": "ALL",
  "maxResults": 5
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://adsgallery.snap.com/?advertiser=nike&country=EU&status=ALL"
        }
    ],
    "searchQueries": [
        "amazon"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("aboo.script/adsgallery-snap-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://adsgallery.snap.com/?advertiser=nike&country=EU&status=ALL" }],
    "searchQueries": ["amazon"],
}

# Run the Actor and wait for it to finish
run = client.actor("aboo.script/adsgallery-snap-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://adsgallery.snap.com/?advertiser=nike&country=EU&status=ALL"
    }
  ],
  "searchQueries": [
    "amazon"
  ]
}' |
apify call aboo.script/adsgallery-snap-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aboo.script/adsgallery-snap-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/0pUX9zb2hLLLcwDZP/builds/U58SqfnwSc0oQ6UDv/openapi.json
