Documentation

search_ads

Search and rank verified Meta or Google ad creatives across tracked shops or a bounded global concept.

Use search_ads when the user asks for concrete ad creatives, hooks, formats, active ads, recent launches, reach or longevity.

Inputs

FieldTypeNotes
storeIdsstring[]Zero to five tracked shops
conceptstringOptional global concept, 2–120 characters
query.limitnumber1–12, defaults to 6
query.sourceenumall, meta, google
query.countriesstring[]Up to 10 uppercase country codes
query.formatsenum[]video, image, carousel, dco
query.placementsenum[]Facebook, Instagram, Messenger, Audience Network, Threads
query.statusenumall, active, inactive
query.sortenumreach, recent, longest
query.dateWindowDaysnumber1–365
query.dateModeenumlaunched or observed
query.languagesstring[]Up to five lowercase language codes
query.ctastringOptional CTA filter

Example

{
  "storeIds": ["store_gymshark"],
  "query": {
    "limit": 6,
    "source": "meta",
    "countries": ["US"],
    "formats": ["video"],
    "placements": ["instagram"],
    "status": "active",
    "sort": "longest",
    "dateWindowDays": 90
  }
}

Choosing a date mode

Use launched when the user cares when an ad began. Use observed when they care when WhatWins verified the record. Meta can reset displayed start dates when an ad is edited or relaunched; WhatWins evidence should therefore preserve and explain the distinction between launch dates and observation history.

Credit behavior

The maximum reservation is query.limit × max(1, number of stores). The final charge reflects ads actually returned.