# Meta Ads Library Scraper - Facebook & Instagram Ads API (`groupoject/meta-ads-library-monitor`) Actor

Monitor Meta Ad Library ads by keyword or Facebook page ID. Export ad copy, pages, platforms, dates, countries, spend/reach fields when available, and creative links.

- **URL**: https://apify.com/groupoject/meta-ads-library-monitor.md
- **Developed by:** [Group Oject](https://apify.com/groupoject) (community)
- **Categories:** Social media, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Meta Ads Library Scraper - Facebook & Instagram Ads API

Search Meta Ad Library by keyword or Facebook page ID and export structured Facebook/Instagram ad data from the official Meta Graph API.

### Use cases

- Track competitor Facebook and Instagram ads
- Monitor brand, political, and issue ad activity
- Build ad creative swipe files
- Collect ad copy, platforms, dates, countries, and snapshot URLs
- Schedule recurring paid-media monitoring through Apify API

### Requirements

This Actor uses Meta's official Ad Library API. You need a valid Meta access token with access to the Ad Library API. Some fields are only available for political/social issue ads or EU/UK transparency data.

### What you get

- Ad archive ID and snapshot URL
- Page name and page ID
- Creative body text, title, caption, and description
- Delivery start/stop dates
- Publisher platforms, including Facebook and Instagram when returned
- Reached countries
- Spend, impressions, and currency when Meta makes those fields available
- Raw API payload preserved for advanced workflows

### Input example

```json
{
  "accessToken": "YOUR_META_ACCESS_TOKEN",
  "searchTerms": ["nike", "crm software"],
  "countries": ["US"],
  "adType": "ALL",
  "activeStatus": "ALL",
  "maxAdsPerQuery": 100
}
````

### Page ID example

```json
{
  "accessToken": "YOUR_META_ACCESS_TOKEN",
  "pageIds": ["15087023444"],
  "countries": ["US", "GB"],
  "activeStatus": "ACTIVE",
  "maxAdsPerQuery": 200
}
```

### Recommended saved tasks

- Competitor Facebook ads monitor
- Active Instagram ads tracker
- Political and issue ads research
- Brand ad creative swipe file
- SaaS competitor ad intelligence

# Actor input Schema

## `accessToken` (type: `string`):

Required. Meta Graph API access token with access to the Ad Library API.

## `searchTerms` (type: `array`):

Keywords to search in Meta Ad Library.

## `searchTermsText` (type: `string`):

Paste one search term per line or comma-separated.

## `pageIds` (type: `array`):

Optional Facebook page IDs to search by advertiser/page.

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

Country codes passed to ad\_reached\_countries.

## `adType` (type: `string`):

Meta ad\_type parameter. ALL is broad; POLITICAL\_AND\_ISSUE\_ADS exposes more transparency fields where available.

## `activeStatus` (type: `string`):

Meta ad\_active\_status parameter.

## `apiVersion` (type: `string`):

Meta Graph API version.

## `maxAdsPerQuery` (type: `integer`):

Maximum ads to fetch per search term or page ID.

## `maxQueries` (type: `integer`):

Maximum search terms/page IDs to process.

## `dedupe` (type: `boolean`):

Remove duplicate ad archive IDs across all queries.

## `requestDelayMs` (type: `integer`):

Delay between API requests.

## `maxConcurrency` (type: `integer`):

Parallel API queries.

## `debugMode` (type: `boolean`):

Verbose logging.

## Actor input object example

```json
{
  "searchTerms": [
    "nike",
    "openai",
    "crm software"
  ],
  "countries": [
    "US"
  ],
  "adType": "ALL",
  "activeStatus": "ALL",
  "apiVersion": "v20.0",
  "maxAdsPerQuery": 100,
  "maxQueries": 100,
  "dedupe": true,
  "requestDelayMs": 500,
  "maxConcurrency": 2,
  "debugMode": false
}
```

# Actor output Schema

## `ads` (type: `string`):

One row per ad from Meta Ad Library API.

## `adsByPage` (type: `string`):

Ads grouped by advertiser/page.

## `summary` (type: `string`):

Totals, top pages, top platforms, and warnings.

## `errors` (type: `string`):

API queries that failed.

# 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 = {
    "searchTerms": [
        "nike",
        "openai",
        "crm software"
    ],
    "countries": [
        "US"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("groupoject/meta-ads-library-monitor").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 = {
    "searchTerms": [
        "nike",
        "openai",
        "crm software",
    ],
    "countries": ["US"],
}

# Run the Actor and wait for it to finish
run = client.actor("groupoject/meta-ads-library-monitor").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "nike",
    "openai",
    "crm software"
  ],
  "countries": [
    "US"
  ]
}' |
apify call groupoject/meta-ads-library-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=groupoject/meta-ads-library-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Meta Ads Library Scraper - Facebook & Instagram Ads API",
        "description": "Monitor Meta Ad Library ads by keyword or Facebook page ID. Export ad copy, pages, platforms, dates, countries, spend/reach fields when available, and creative links.",
        "version": "1.0",
        "x-build-id": "50gwWbYDFbmbEgrwx"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/groupoject~meta-ads-library-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-groupoject-meta-ads-library-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/groupoject~meta-ads-library-monitor/runs": {
            "post": {
                "operationId": "runs-sync-groupoject-meta-ads-library-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/groupoject~meta-ads-library-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-groupoject-meta-ads-library-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "accessToken"
                ],
                "properties": {
                    "accessToken": {
                        "title": "Meta access token",
                        "type": "string",
                        "description": "Required. Meta Graph API access token with access to the Ad Library API."
                    },
                    "searchTerms": {
                        "title": "Search terms",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Keywords to search in Meta Ad Library.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchTermsText": {
                        "title": "Bulk search terms",
                        "type": "string",
                        "description": "Paste one search term per line or comma-separated."
                    },
                    "pageIds": {
                        "title": "Facebook page IDs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Optional Facebook page IDs to search by advertiser/page.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "countries": {
                        "title": "Reached countries",
                        "type": "array",
                        "description": "Country codes passed to ad_reached_countries.",
                        "default": [
                            "US"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "adType": {
                        "title": "Ad type",
                        "enum": [
                            "ALL",
                            "POLITICAL_AND_ISSUE_ADS"
                        ],
                        "type": "string",
                        "description": "Meta ad_type parameter. ALL is broad; POLITICAL_AND_ISSUE_ADS exposes more transparency fields where available.",
                        "default": "ALL"
                    },
                    "activeStatus": {
                        "title": "Active status",
                        "enum": [
                            "ALL",
                            "ACTIVE",
                            "INACTIVE"
                        ],
                        "type": "string",
                        "description": "Meta ad_active_status parameter.",
                        "default": "ALL"
                    },
                    "apiVersion": {
                        "title": "Graph API version",
                        "type": "string",
                        "description": "Meta Graph API version.",
                        "default": "v20.0"
                    },
                    "maxAdsPerQuery": {
                        "title": "Max ads per query",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum ads to fetch per search term or page ID.",
                        "default": 100
                    },
                    "maxQueries": {
                        "title": "Max queries",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum search terms/page IDs to process.",
                        "default": 100
                    },
                    "dedupe": {
                        "title": "Deduplicate ads",
                        "type": "boolean",
                        "description": "Remove duplicate ad archive IDs across all queries.",
                        "default": true
                    },
                    "requestDelayMs": {
                        "title": "Request delay (ms)",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Delay between API requests.",
                        "default": 500
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Parallel API queries.",
                        "default": 2
                    },
                    "debugMode": {
                        "title": "Debug mode",
                        "type": "boolean",
                        "description": "Verbose logging.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
