# Ads Library Competitive Intelligence (`taroyamada/ads-library-competitive-intelligence`) Actor

Direct-source parser for user-provided public ad-library pages, exports, and saved HTML snapshots. Structures ad creatives, advertiser signals, PPE charged events, and no-charge diagnostics without search, crawling, login, browser automation, pagination, or API replay.

- **URL**: https://apify.com/taroyamada/ads-library-competitive-intelligence.md
- **Developed by:** [太郎 山田](https://apify.com/taroyamada) (community)
- **Categories:** Marketing, Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN 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

## Ads Library Competitive Intelligence

Direct-source v1 Actor for parsing user-provided public ad-library pages, export URLs, HTML snapshots, and saved HTML/export files.

### V1 scope

- Parses only direct sources supplied by the user.
- Supports public HTML, JSON, CSV, pasted HTML snapshots, and saved files inside the Actor working directory.
- Does not search, discover, crawl, paginate, log in, automate browsers, replay GraphQL/API calls, or bypass platform controls.
- High-risk platforms such as Meta, Google, LinkedIn, TikTok, and X are accepted only when the exact user-provided URL or snapshot looks like a public ad-library/export source.

### Billing

Charged PPE events:

- `ad_creative_profile` for normalized ad creative rows.
- `ad_library_partial` for useful library-level evidence when no complete creative row is extracted.

No-charge diagnostic statuses:

- `invalid`
- `blocked`
- `not_found`
- `not_ad_library`
- `error`

Every dataset row includes `status`, `chargedEvent`, `sourceUrls`, and `errors`.

### Local run

```bash
npm install
npm test
npm start
````

The included `input.json` uses `dryRun: true` and a small saved HTML snapshot.

# Actor input Schema

## `sourceUrls` (type: `array`):

User-provided public ad-library pages or export URLs to fetch directly once. V1 does not discover, paginate, replay APIs, log in, or automate browsers.

## `htmlSnapshots` (type: `array`):

Saved ad-library HTML snapshots supplied in the input. Each item can include url, html, and label. This is safest for high-risk platforms because no network request is made.

## `savedHtmlFiles` (type: `array`):

Optional local saved HTML or export files to parse. Files must be inside the Actor working directory at runtime.

## `brandHints` (type: `array`):

Optional advertiser or competitor names used only for local matching in parsed rows.

## `maxAdsPerSource` (type: `integer`):

Maximum ad creative rows emitted from each direct source.

## `maxSources` (type: `integer`):

Maximum normalized direct sources to process.

## `dryRun` (type: `boolean`):

Validate input, parse sources, and write local output without pushing dataset rows or charging custom PPE events.

## Actor input object example

```json
{
  "sourceUrls": [
    "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=example",
    "https://adstransparency.google.com/advertiser/example"
  ],
  "htmlSnapshots": [],
  "savedHtmlFiles": [],
  "brandHints": [],
  "maxAdsPerSource": 25,
  "maxSources": 50,
  "dryRun": false
}
```

# 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 = {
    "sourceUrls": [
        "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=example",
        "https://adstransparency.google.com/advertiser/example"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("taroyamada/ads-library-competitive-intelligence").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 = { "sourceUrls": [
        "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=example",
        "https://adstransparency.google.com/advertiser/example",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("taroyamada/ads-library-competitive-intelligence").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 '{
  "sourceUrls": [
    "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=example",
    "https://adstransparency.google.com/advertiser/example"
  ]
}' |
apify call taroyamada/ads-library-competitive-intelligence --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Ads Library Competitive Intelligence",
        "description": "Direct-source parser for user-provided public ad-library pages, exports, and saved HTML snapshots. Structures ad creatives, advertiser signals, PPE charged events, and no-charge diagnostics without search, crawling, login, browser automation, pagination, or API replay.",
        "version": "0.1",
        "x-build-id": "qU6ybsqH7eeXVo7Jh"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/taroyamada~ads-library-competitive-intelligence/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-taroyamada-ads-library-competitive-intelligence",
                "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/taroyamada~ads-library-competitive-intelligence/runs": {
            "post": {
                "operationId": "runs-sync-taroyamada-ads-library-competitive-intelligence",
                "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/taroyamada~ads-library-competitive-intelligence/run-sync": {
            "post": {
                "operationId": "run-sync-taroyamada-ads-library-competitive-intelligence",
                "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",
                "properties": {
                    "sourceUrls": {
                        "title": "Public Ad Library or Export URLs",
                        "maxItems": 100,
                        "type": "array",
                        "description": "User-provided public ad-library pages or export URLs to fetch directly once. V1 does not discover, paginate, replay APIs, log in, or automate browsers.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "htmlSnapshots": {
                        "title": "HTML Snapshots",
                        "maxItems": 50,
                        "type": "array",
                        "description": "Saved ad-library HTML snapshots supplied in the input. Each item can include url, html, and label. This is safest for high-risk platforms because no network request is made.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "url": {
                                    "title": "Source URL",
                                    "type": "string",
                                    "description": "Optional original public ad-library URL for the saved snapshot."
                                },
                                "label": {
                                    "title": "Snapshot Label",
                                    "type": "string",
                                    "description": "Optional human-readable label for this snapshot."
                                },
                                "html": {
                                    "title": "HTML",
                                    "type": "string",
                                    "description": "Saved public ad-library HTML content to parse directly."
                                }
                            },
                            "required": [
                                "html"
                            ],
                            "additionalProperties": true
                        },
                        "default": []
                    },
                    "savedHtmlFiles": {
                        "title": "Saved HTML Files",
                        "maxItems": 50,
                        "type": "array",
                        "description": "Optional local saved HTML or export files to parse. Files must be inside the Actor working directory at runtime.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "brandHints": {
                        "title": "Brand Hints",
                        "maxItems": 50,
                        "type": "array",
                        "description": "Optional advertiser or competitor names used only for local matching in parsed rows.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "maxAdsPerSource": {
                        "title": "Max Ads per Source",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum ad creative rows emitted from each direct source.",
                        "default": 25
                    },
                    "maxSources": {
                        "title": "Max Sources",
                        "minimum": 1,
                        "maximum": 150,
                        "type": "integer",
                        "description": "Maximum normalized direct sources to process.",
                        "default": 50
                    },
                    "dryRun": {
                        "title": "Dry Run",
                        "type": "boolean",
                        "description": "Validate input, parse sources, and write local output without pushing dataset rows or charging custom PPE events.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
