# Find winning Facebook ads that ran 30+ days

**Use case:** 

Advertisers stop ads that lose money, so ads that keep running are a good sign of a winning product or creative. This task searches the Meta Ad Library for active US ads that mention free shipping, keeps only ads running for at least 30 days, and returns one ad per advertiser with copy, creatives, landing page and days running.

## Input

```json
{
  "searchTerms": [
    "free shipping"
  ],
  "countries": [
    "US"
  ],
  "activeStatus": "active",
  "adType": "all",
  "mediaType": "all",
  "searchMode": "keyword_unordered",
  "sortBy": "relevance",
  "minDaysRunning": 30,
  "skipDuplicateVersions": false,
  "oneAdPerAdvertiser": true,
  "maxAdsPerSource": 50,
  "includeAdDetails": false,
  "countOnly": false,
  "includeMarkdown": false,
  "includeRawData": false,
  "onlyNewAds": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "maxConcurrency": 4,
  "maxRetries": 6
}
```

## Output

```json
{
  "pageProfilePictureUrl": {
    "label": "Page picture",
    "format": "string"
  },
  "pageName": {
    "label": "Advertiser",
    "format": "string"
  },
  "status": {
    "label": "Status",
    "format": "string"
  },
  "startDate": {
    "label": "Started",
    "format": "string"
  },
  "daysRunning": {
    "label": "Days running",
    "format": "integer"
  },
  "platforms": {
    "label": "Platforms",
    "format": "array"
  },
  "mediaType": {
    "label": "Media type",
    "format": "string"
  },
  "title": {
    "label": "Headline",
    "format": "string"
  },
  "bodyText": {
    "label": "Ad text",
    "format": "string"
  },
  "ctaText": {
    "label": "Call to action",
    "format": "string"
  },
  "linkDomain": {
    "label": "Landing domain",
    "format": "string"
  },
  "adLibraryUrl": {
    "label": "Ad Library link",
    "format": "string"
  }
}
```

## How it works

### 1. Sign up on Apify or log in

The Facebook Ads Library Scraper & Ad Monitor Actor is ready to run with the inputs already set for "Find winning Facebook ads that ran 30+ days". [Sign up or log in](https://console.apify.com/create-task-from-example/qIDVErcVvWvoqvxaB) and you'll land in Apify Console with a copy of this exact task.

### 2. Start the "Find winning Facebook ads that ran 30+ days" task

The Facebook Ads Library Scraper & Ad Monitor Actor will start running based on the input automatically. You can also change all the input fields, like search terms (keywords or brand names), countries, and more, to match your specific use case.

### 3. Receive the "Find winning Facebook ads that ran 30+ days" output

Monitor the progress in real time. You will be notified as soon as your dataset is complete and ready for review. Each result includes data such as page picture, advertiser, status, and more.

### 4. Integrate into your workflow

The final output is delivered in JSON, CSV, or Excel format, ready to be plugged into your workflow. You can also [run the "Find winning Facebook ads that ran 30+ days" task via API](https://apify.com/panix/facebook-ads-library-scraper.md).

## FAQ

### Why do long-running ads matter?

An ad that keeps running for 30 days or more is usually paying for itself, because advertisers switch off ads that lose money. The winning Facebook ads task uses days running as that public signal.

### How is days running calculated?

The winning Facebook ads task counts the days from the ad's start date in the Meta Ad Library to today. Meta does not publish spend for commercial ads, so days running is the best public sign of a proven ad.

### Can I use another niche or country?

Replace free shipping with your niche, for example pet supplies or skincare, and pick any country. Raise Minimum days running to 60 or 90 in the winning Facebook ads task for even more proven ads.

### How much does the winning Facebook ads task cost?

The winning Facebook ads task charges only for delivered ads: $0.60 per 1,000 on the Apify Free plan and $0.50 on Starter, less on bigger plans, plus $0.003 per run. Ads removed by the 30-day filter are free.

## About this Actor

This example demonstrates how to use [Facebook Ads Library Scraper & Ad Monitor](https://apify.com/panix/facebook-ads-library-scraper.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/panix/facebook-ads-library-scraper.md) to learn more, explore other use cases, and run it yourself.


## How to integrate an Actor?

This Task's input is already configured above. Use it as-is rather than inventing a new one.

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 full API examples (JavaScript, Python, CLI, MCP, OpenAPI), see this Task's Actor page: https://apify.com/panix/facebook-ads-library-scraper.md

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`).
