Search ads
search_adsSearch paid ads across Google, Meta, and LinkedIn ad libraries by saved search, entities, dates, keywords, or platform; returns copy, links, creatives, run dates, and spend/impression ranges.
Instructions
The paid ads run by the entities in the scope, collected from the Google, Meta, and LinkedIn ad libraries, newest first by default: copy, link, creative URLs, run dates, reported impression and spend ranges, and a link to the ad's public ad-library page. Scope with savedSearchId or entityIds like the other tools; the date range keeps every ad whose run overlaps it, keyword filters match the ad's headline and body, and adPlatforms (google, meta, linkedin) narrows the ad libraries — a saved search's platform filter does not apply to ads. Requires the mentions API tier, and every returned ad counts against the workspace's monthly post quota — keep pageSize small (default 25) and only paginate when needed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order by when the ad ran: its start date, else its end date, else (for ads the library reports no dates for) when Alidade first collected it. Default newest. | |
| cursor | No | Opaque pagination cursor from a previous response's `nextCursor`. Use the same query parameters across paged requests. | |
| dateTo | No | Only include ads that started running on or before this date (ISO 8601). A date-only value (`2026-01-31`) includes that whole day, UTC. Overrides the saved search's range end; its range start is kept unless `dateFrom` is also provided. | |
| dateFrom | No | Only include ads still running on or after this date (ISO 8601). Ads without run dates match by when Alidade saw them listed (`firstSeenAt`–`lastSeenAt`). A date-only value (`2026-01-31`) means the start of that day, UTC. Overrides the saved search's range start; its range end is kept unless `dateTo` is also provided. | |
| keywords | No | Comma-separated keywords to filter ad headline and body text by (e.g. `sustainability,net zero`). Replaces the saved search's keyword filters. Cannot be combined with `booleanQuery`. | |
| pageSize | No | Items per page (max 100, default 25). | |
| entityIds | No | Comma-separated entity IDs (max 100) for an ad-hoc scope, treated as a single comparison group. Provide either this or `savedSearchId`. | |
| adPlatforms | No | Comma-separated ad libraries to include. Valid values: google, meta, linkedin. Omit for all. A saved search's platform filter applies to posts, not ads. | |
| booleanQuery | No | Boolean keyword query matching the app's advanced search mode (e.g. `"net zero" AND (solar OR wind)`). Syntax: AND/OR/NOT (upper case), parentheses, quoted phrases with optional proximity ("health care"~3 = up to 3 words between, any phrase length, max 20), NEAR/N (either order) and THEN/N (ordered) between terms or groups, wildcards (elect*, wom?n), fuzzy (medicaid~1, max 2). Always use explicit operators between terms. Mixing AND or NOT with OR at the same depth is an error — parenthesize to make precedence explicit ((a AND b) OR c, (a OR b) NOT c). NEAR/THEN bind tighter than AND/OR — parenthesize a proximity expression that sits next to AND/OR ((a NEAR/5 b) OR c, (a OR b) NEAR/5 c). NOT is not allowed inside NEAR/THEN; exclude outside the proximity expression. Matching is exact-token, case- and accent-insensitive (no stemming) — cover word variants with OR or a wildcard (tariff OR tariffs, tariff*). Korean attaches particles to words, so put a trailing wildcard on each Korean term (검색*). Hindi is written in Devanagari and romanized, so OR both forms ((दोस्त OR dost)); Devanagari and Tamil matching ignores vowel signs, so expect some unrelated matches. Comments are ignored by search: // to the end of the line, <<< >>> inline or across lines. Full syntax: https://docs.alidade-ai.com/search-syntax. Replaces the saved search's keyword filters. Cannot be combined with the keyword parameters. | |
| keywordMatch | No | Whether posts must match `any` (default) or `all` of `keywords`. | |
| savedSearchId | No | ID of a saved search to scope the request to. Its comparison groups, date range, and keyword filters apply; its platform filter applies to posts, not ads (use `adPlatforms`). Only entities your workspace can access are included; a saved search with none returns 422. Provide either this or `entityIds`. | |
| excludeKeywords | No | Comma-separated keywords that matching posts must not contain (exact word/phrase match). Replaces the saved search's keyword filters. Cannot be combined with `booleanQuery`. | |
| keywordMatchType | No | `exact` (default) matches the exact words or phrases only; `stemmed` also matches English word variants (run/running). Applies to `keywords`. |