# EU reach and audience per ad (DSA transparency)

**Use case:** 

For every ad that reached the EU: total reach, the breakdown by country, age and gender, the audience the advertiser chose, and the payer and beneficiary — the figures the Ad Library publishes under the Digital Services Act, as columns. Billed only on rows that carry a figure.

## Input

```json
{
  "advertiserIds": [
    "20409006880"
  ],
  "advertiserNames": [],
  "searchTerms": [],
  "creativeIds": [],
  "resultType": "ads",
  "maxAdvertisersPerName": 3,
  "startUrls": [],
  "regions": [],
  "targetedCountryOnly": false,
  "activeStatus": "active",
  "adType": "all",
  "mediaType": "all",
  "platforms": [],
  "languages": [],
  "sortBy": "auto",
  "expandVariants": true,
  "keywordMatch": "unordered",
  "keywordRelevance": "any",
  "dedupeBy": "none",
  "period": "",
  "longRunningDays": 30,
  "includeEuReach": true,
  "includeAdvertiserInfo": false,
  "downloadMedia": "none",
  "transcribeVideos": false,
  "ocrImageAds": false,
  "analyzeAds": false,
  "enrichLandingPage": false,
  "summaryRows": false,
  "maxAds": 100,
  "maxAdsPerTarget": 0,
  "onlyNewAds": false,
  "includeEndedAds": false,
  "requestDelaySecs": 0.3,
  "concurrency": 3,
  "includeRawData": false
}
```

## Output

```json
{
  "row_type": {
    "label": "Row type",
    "format": "string"
  },
  "advertiser_name": {
    "label": "Advertiser name",
    "format": "string"
  },
  "advertiser_id": {
    "label": "Advertiser id",
    "format": "string"
  },
  "creative_id": {
    "label": "Creative id",
    "format": "string"
  },
  "collation_id": {
    "label": "Collation id",
    "format": "string"
  },
  "collation_count": {
    "label": "Collation count",
    "format": "integer"
  },
  "ad_format": {
    "label": "Ad format",
    "format": "string"
  },
  "is_active": {
    "label": "Is active",
    "format": "boolean"
  },
  "headline": {
    "label": "Headline",
    "format": "string"
  },
  "body_text": {
    "label": "Body text",
    "format": "string"
  },
  "link_description": {
    "label": "Link description",
    "format": "string"
  },
  "headlines": {
    "label": "Headlines",
    "format": "array"
  },
  "descriptions": {
    "label": "Descriptions",
    "format": "array"
  },
  "display_url": {
    "label": "Display url",
    "format": "string"
  },
  "destination_url": {
    "label": "Destination url",
    "format": "string"
  },
  "cta": {
    "label": "Cta",
    "format": "string"
  },
  "cta_type": {
    "label": "Cta type",
    "format": "string"
  },
  "cards": {
    "label": "Cards",
    "format": "array"
  },
  "first_shown": {
    "label": "First shown",
    "format": "string"
  },
  "last_shown": {
    "label": "Last shown",
    "format": "string"
  },
  "days_shown": {
    "label": "Days shown",
    "format": "integer"
  },
  "image_url": {
    "label": "Image url",
    "format": "string"
  },
  "image_urls": {
    "label": "Image urls",
    "format": "array"
  },
  "image_small_url": {
    "label": "Image small url",
    "format": "string"
  },
  "video_url": {
    "label": "Video url",
    "format": "string"
  },
  "video_urls": {
    "label": "Video urls",
    "format": "array"
  },
  "video_duration_s": {
    "label": "Video duration s",
    "format": "integer"
  },
  "video_preview_url": {
    "label": "Video preview url",
    "format": "string"
  },
  "media_files": {
    "label": "Media files",
    "format": "array"
  },
  "image_file_url": {
    "label": "Image file url",
    "format": "string"
  },
  "video_file_url": {
    "label": "Video file url",
    "format": "string"
  },
  "transcript": {
    "label": "Transcript",
    "format": "string"
  },
  "transcript_language": {
    "label": "Transcript language",
    "format": "string"
  },
  "hook_3s": {
    "label": "Hook 3s",
    "format": "string"
  },
  "speech_seconds": {
    "label": "Speech seconds",
    "format": "number"
  },
  "ad_ocr_text": {
    "label": "Ad ocr text",
    "format": "string"
  },
  "sentiment_score": {
    "label": "Sentiment score",
    "format": "number"
  },
  "analysis_hook": {
    "label": "Analysis hook",
    "format": "string"
  },
  "analysis_offer": {
    "label": "Analysis offer",
    "format": "string"
  },
  "analysis_angle": {
    "label": "Analysis angle",
    "format": "string"
  },
  "analysis_audience": {
    "label": "Analysis audience",
    "format": "string"
  },
  "analysis_cta_intent": {
    "label": "Analysis cta intent",
    "format": "string"
  },
  "analysis_tone": {
    "label": "Analysis tone",
    "format": "string"
  },
  "analysis_sentiment": {
    "label": "Analysis sentiment",
    "format": "number"
  },
  "landing_final_url": {
    "label": "Landing final url",
    "format": "string"
  },
  "landing_domain": {
    "label": "Landing domain",
    "format": "string"
  },
  "landing_status": {
    "label": "Landing status",
    "format": "integer"
  },
  "landing_title": {
    "label": "Landing title",
    "format": "string"
  },
  "landing_is_product": {
    "label": "Landing is product",
    "format": "boolean"
  },
  "landing_product_name": {
    "label": "Landing product name",
    "format": "string"
  },
  "landing_price": {
    "label": "Landing price",
    "format": "number"
  },
  "landing_currency": {
    "label": "Landing currency",
    "format": "string"
  },
  "platforms": {
    "label": "Platforms",
    "format": "array"
  },
  "launched_last_7_days": {
    "label": "Launched last 7 days",
    "format": "boolean"
  },
  "launched_last_30_days": {
    "label": "Launched last 30 days",
    "format": "boolean"
  },
  "long_running": {
    "label": "Long running",
    "format": "boolean"
  },
  "platform_count": {
    "label": "Platform count",
    "format": "integer"
  },
  "categories": {
    "label": "Categories",
    "format": "array"
  },
  "regions": {
    "label": "Regions",
    "format": "array"
  },
  "region": {
    "label": "Region",
    "format": "string"
  },
  "spend_min": {
    "label": "Spend min",
    "format": "number"
  },
  "spend_max": {
    "label": "Spend max",
    "format": "number"
  },
  "spend_currency": {
    "label": "Spend currency",
    "format": "string"
  },
  "impressions_min": {
    "label": "Impressions min",
    "format": "integer"
  },
  "impressions_max": {
    "label": "Impressions max",
    "format": "integer"
  },
  "reach_min": {
    "label": "Reach min",
    "format": "integer"
  },
  "reach_max": {
    "label": "Reach max",
    "format": "integer"
  },
  "paid_for_by": {
    "label": "Paid for by",
    "format": "string"
  },
  "funding_entity_website": {
    "label": "Funding entity website",
    "format": "string"
  },
  "funding_entity_address": {
    "label": "Funding entity address",
    "format": "string"
  },
  "eu_total_reach": {
    "label": "Eu total reach",
    "format": "integer"
  },
  "eu_reach_breakdown": {
    "label": "Eu reach breakdown",
    "format": "array"
  },
  "eu_audience_age_min": {
    "label": "Eu audience age min",
    "format": "integer"
  },
  "eu_audience_age_max": {
    "label": "Eu audience age max",
    "format": "integer"
  },
  "eu_audience_gender": {
    "label": "Eu audience gender",
    "format": "string"
  },
  "eu_audience_locations": {
    "label": "Eu audience locations",
    "format": "array"
  },
  "payer": {
    "label": "Payer",
    "format": "string"
  },
  "beneficiary": {
    "label": "Beneficiary",
    "format": "string"
  },
  "political_reach_by_region": {
    "label": "Political reach by region",
    "format": "array"
  },
  "political_reach_by_age_gender": {
    "label": "Political reach by age gender",
    "format": "array"
  },
  "advertiser_category": {
    "label": "Advertiser category",
    "format": "string"
  },
  "advertiser_about": {
    "label": "Advertiser about",
    "format": "string"
  },
  "advertiser_categories": {
    "label": "Advertiser categories",
    "format": "array"
  },
  "advertiser_ads_seen": {
    "label": "Advertiser ads seen",
    "format": "integer"
  },
  "advertiser_match": {
    "label": "Advertiser match",
    "format": "string"
  },
  "advertiser_claimed_ads": {
    "label": "Advertiser claimed ads",
    "format": "integer"
  },
  "claimed_count": {
    "label": "Claimed count",
    "format": "integer"
  },
  "summary_ad_count": {
    "label": "Summary ad count",
    "format": "integer"
  },
  "summary_active_count": {
    "label": "Summary active count",
    "format": "integer"
  },
  "summary_longest_days": {
    "label": "Summary longest days",
    "format": "integer"
  },
  "summary_formats": {
    "label": "Summary formats",
    "format": "array"
  },
  "summary_landing_domains": {
    "label": "Summary landing domains",
    "format": "array"
  },
  "summary_distinct_copies": {
    "label": "Summary distinct copies",
    "format": "integer"
  },
  "summary_ad_ids": {
    "label": "Summary ad ids",
    "format": "array"
  },
  "advertiser_likes": {
    "label": "Advertiser likes",
    "format": "integer"
  },
  "advertiser_ig_username": {
    "label": "Advertiser ig username",
    "format": "string"
  },
  "advertiser_ig_followers": {
    "label": "Advertiser ig followers",
    "format": "integer"
  },
  "advertiser_verified": {
    "label": "Advertiser verified",
    "format": "boolean"
  },
  "advertiser_spend_total": {
    "label": "Advertiser spend total",
    "format": "number"
  },
  "advertiser_spend_week": {
    "label": "Advertiser spend week",
    "format": "number"
  },
  "advertiser_url": {
    "label": "Advertiser url",
    "format": "string"
  },
  "advertiser_picture_url": {
    "label": "Advertiser picture url",
    "format": "string"
  },
  "ad_url": {
    "label": "Ad url",
    "format": "string"
  },
  "matched_query": {
    "label": "Matched query",
    "format": "string"
  },
  "matched_fields": {
    "label": "Matched fields",
    "format": "array"
  },
  "first_seen_at": {
    "label": "First seen",
    "format": "string"
  },
  "last_seen_at": {
    "label": "Last seen at",
    "format": "string"
  },
  "ended_at": {
    "label": "Ended at",
    "format": "string"
  },
  "run_tag": {
    "label": "Run tag",
    "format": "string"
  },
  "raw": {
    "label": "Raw",
    "format": "object"
  }
}
```

## About this Actor

This example demonstrates how to use [Meta Ad Library Scraper — Facebook & Instagram Ads + EU Reach](https://apify.com/hyperbach/meta-ads-library-scraper.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/hyperbach/meta-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/hyperbach/meta-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`).
