25 Sep · Staple 6-Pack
A “True Stories” documentary about four dads led to the 6-Pack page with Video and Shop now.
Baseline cohortThis workflow returns one verified competitor creative timeline.
Compare chronological launch cohorts for one verified advertiser and see what changed in products, messages, formats, CTAs and landing routes.
Example run · 13 Oct 2026 · ~1 min
Published by Spytrend · 2 Oct 2026 · Methodology
Prompts update with the controlled inputs above.
Check the exact domain, country, lookback and media.
View promptHide promptI want to track how one competitor changed its Meta ads. Competitor: True Classic Exact domain: trueclassictees.com Country (ISO-2): US Lookback: 30 completed UTC days Media: Video Validate only the controlled field values above (lookback 30 or 90, an allowlisted country, media All media, Image or Video, a canonical registrable domain). Do not call Spytrend, browse the web or establish advertiser identity in this step. If a value or field relationship is invalid, return exactly `Invalid controlled input configuration`; otherwise return exactly `Configuration valid`. Stop after Step 1.
Split the completed-day window into three chronological segments and search sequentially.
View promptHide promptCost guard: before each paid Spytrend call, run the free `estimate_cost` with the same tool and arguments, estimate the cost and stay within the user's stated budget; if the user has not stated a budget, tell them the estimate before the first paid call. If pricing consent is required, show the returned terms and stop until the customer explicitly agrees; never accept on the customer's behalf. If a required call does not fit the stated budget, make no paid call and return `Budget limit prevents required research`; omit an optional call that does not fit and disclose reduced coverage. When opening ads with `get_ad`, skip multilang ads (`is_multilang`) and never call `get_media` after `get_ad`. Retry once only when `retryable=true`, after `retry_after_seconds`. Read `params.ignored` after every search; an ignored required filter never counts as applied. If a search reports `pagination.total_status=restricted` (a free-plan archive window; `meta.plan_window_cutoff` names the boundary), tell the user the result covers only ads that started on or before that date, and never report a zero from it as "no such ads exist". Cost notices are not part of the final customer report. Using the validated configuration from Step 1, do not call get_advertiser. Calculate the window: the last 30 completed UTC days ending yesterday, and split it into three consecutive non-overlapping segments. Run exactly three Meta discovery searches sequentially in chronological order, one per segment, with landing_domain=trueclassictees.com, landing_domain_exact=true, countries=[US], media scope Video (media_type=image or video for Image or Video; omit it for All media), sort_by=date, sort_order=asc, dedupe=false, `limit=5` and no pagination. Do not add status_today. Retain full rows, segment provenance, arguments, outcomes, actual debit and remaining budget internally without printing them in progress/commentary. Return only completed/failed segment count, total returned rows before exact-ID deduplication, and whether enough chronological evidence exists. Hide calls, IDs, parameters and audit details. Stop after Step 2.
Open bounded ads and compare offer, message, media, CTA and destination.
View promptHide promptCost guard: before each paid Spytrend call, run the free `estimate_cost` with the same tool and arguments, estimate the cost and stay within the user's stated budget; if the user has not stated a budget, tell them the estimate before the first paid call. If pricing consent is required, show the returned terms and stop until the customer explicitly agrees; never accept on the customer's behalf. If a required call does not fit the stated budget, make no paid call and return `Budget limit prevents required research`; omit an optional call that does not fit and disclose reduced coverage. When opening ads with `get_ad`, skip multilang ads (`is_multilang`) and never call `get_media` after `get_ad`. Retry once only when `retryable=true`, after `retry_after_seconds`. Read `params.ignored` after every search; an ignored required filter never counts as applied. If a search reports `pagination.total_status=restricted` (a free-plan archive window; `meta.plan_window_cutoff` names the boundary), tell the user the result covers only ads that started on or before that date, and never report a zero from it as "no such ads exist". Cost notices are not part of the final customer report. Using only retained discovery evidence and remaining budget, select up to two non-multilang ads from each non-empty segment, maximum six, so that 3–5 launch cohorts can survive verification. Before opening, take candidates only from the one Meta page_id that appears in the most non-empty segments (ties: most discovery rows), because one domain can run several Meta pages and they must not be mixed. Open sequentially only while each estimate fits. If a later estimate does not fit, stop without substitution and retain reduced coverage. The first opened ad whose original landing domain is exactly trueclassictees.com establishes the Meta page/advertiser; every other verified ad must match it. Verify domain identity, delivery-country evidence, media scope and start date inside its segment. A completed nonqualifying detail is valid exclusion evidence and does not make the run Partial. When media scope is All, a completed detail with no asset type is labelled `Not returned`; missing media or other optional fields do not make a completed run Partial. Build cohorts and compare product/offer, message, actual media, CTA and normalized landing route. Normalize media as Image, Video, Image and video, or Not returned; asset count does not prove carousel. Normalize URLs by lowercasing scheme/host, removing default ports/fragments and only `utm_*`, `fbclid`, `gclid`, `msclkid`, `ttclid`; preserve every other query key/value, including unknown or opaque keys. Different retained query values are distinct route variants but do not prove different audience, offer, funnel, experiment or page content. Do not treat a later launch as a refresh or conflate a cohort with an exact creative family. Retain evidence, outcomes, debit and remaining budget internally without printing progress details. Return only verified-ad count, cohort count, verified-change count and Complete/Partial. Hide IDs, calls and rejected-row details. Stop after Step 3.
Return a chronological dashboard of changes and stable elements.
View promptHide promptUsing retained evidence only, render the final customer-facing dashboard titled `# Meta Creative Changes: True Classic in` followed by the full country name for US (for example United States, not US). Do not rerun Spytrend. Use no more than 300 words. Keep it table-free and chronological. Show up to four verified changes and up to three stable elements. Separate launch timing from current status. Never identify rejected candidates, expose signed media URLs, calls, IDs, quotas, tokens, timing or audit details. Put technical evidence only in a separate `Show audit details` response. Stop after Step 4.
Cost guard: before each paid Spytrend call, run the free `estimate_cost` with the same tool and arguments, estimate the cost and stay within the user's stated budget; if the user has not stated a budget, tell them the estimate before the first paid call. If pricing consent is required, show the returned terms and stop until the customer explicitly agrees; never accept on the customer's behalf. If a required call does not fit the stated budget, make no paid call and return `Budget limit prevents required research`; omit an optional call that does not fit and disclose reduced coverage. When opening ads with `get_ad`, skip multilang ads (`is_multilang`) and never call `get_media` after `get_ad`. Retry once only when `retryable=true`, after `retry_after_seconds`. Read `params.ignored` after every search; an ignored required filter never counts as applied. If a search reports `pagination.total_status=restricted` (a free-plan archive window; `meta.plan_window_cutoff` names the boundary), tell the user the result covers only ads that started on or before that date, and never report a zero from it as "no such ads exist". Cost notices are not part of the final customer report. Use the connected Spytrend MCP to build a customer-facing timeline of how one advertiser changed its Meta ads during a completed-date window. Inputs: competitor True Classic; exact domain trueclassictees.com; country (ISO-2) US; lookback 30 completed UTC days; media Video. Complete every stage in one turn and return only the final customer report (cost notices aside). This compares verified launch cohorts for one advertiser; it is not an ad inventory, reuse leaderboard, performance report or complete campaign history. 1. Before any MCP call check that the lookback is 30 or 90, the country is allowlisted, media is All media, Image or Video and the domain is canonical. On failure return exactly `Invalid controlled input configuration` and make no call. A company name alone is not identity. 2. Calculate the window: the last 30 completed UTC days ending yesterday. Split it into three consecutive, non-overlapping segments covering every date once. 3. Run three search_ads calls sequentially in chronological order, one per segment: source=meta, landing_domain=trueclassictees.com, landing_domain_exact=true, countries=[US], that segment's date_from/date_to, sort_by=date, sort_order=asc, dedupe=false, limit=5, no pagination. For Image or Video set media_type=image or video in all three; for All media omit it. Do not add status_today, category, query, reuse sorting or performance filters. Do not call get_advertiser. 4. Deduplicate exact ad IDs. Select up to two non-multilang ads (`is_multilang`) per non-empty segment, maximum six, and open them sequentially with get_ad. Take candidates only from the one Meta page_id present in the most non-empty segments (ties: most discovery rows); one domain can run several Meta pages and they must not be mixed. The first opened ad whose original landing domain is exactly trueclassictees.com establishes the Meta page/advertiser; every other verified ad must match it, the exact domain, the selected country, the media scope and a start date inside its segment. Never switch to another brand, related domain, reseller or affiliate. Report current status (Active, Inactive or Currently unavailable) separately from launch timing. 5. Group verified ads into launch cohorts (same or tightly grouped start dates with a consistent offer, message and route). A verified change needs two chronological cohorts and an observable difference in product/offer, message, actual media type, CTA or normalized landing route. A later launch alone is not a refresh. A cohort is not a creative family; call a creative reused only when an exact creative-family identity is returned. Normalize media as Image, Video, Image and video or Not returned; asset count never proves carousel. Normalize URLs by lowercasing scheme/host and removing fragments and only `utm_*`, `fbclid`, `gclid`, `msclkid`, `ttclid`; different remaining query values are route variants, not proof of different audiences or funnels. 6. A failed segment makes the run Partial; continue the others. A completed zero-row segment is valid zero. If fewer than two chronological cohorts survive, return zero verified changes without padding. Write a table-free, chronological report of at most 300 words. Start with `# Meta Creative Changes: True Classic in ` followed by the full country name for US (write United States, not US), then: `**[N] verified changes** · [M] launch cohorts inspected · 30 completed days · Video · **[Complete/Partial]**` Sections: `## Identity` (advertiser/page and domain, one or two sentences); `## Timeline` with one `### [Date range] · [Product/offer label]` entry per cohort and short Message, Format and CTA, Landing route (safe returned link), Current status and What changed lines; `## Change log` with up to four supported changes naming the earlier and later cohort, plus up to three stable elements; `## What to inspect next` (at most two actions; never recommend copying or increasing spend); `## Research coverage` (at most three bullets: window and status, returned/inspected/cohort counts, limits). Attribute product claims, discounts and reviews to the advertiser. Hide service name, tools, calls, parameters, raw IDs, signed media URLs, quotas and token usage. Do not infer spend, reach, performance, conversions, revenue, ROAS, scaling or replacement. End exactly: `Meta archive activity shows observed launch changes, not spend, reach, performance, conversions, sales, revenue, ROAS, profitability or complete campaign history.` If the user later says `Show audit details`, list the retained calls, segment dates, inspected rows and verification decisions without rerunning anything.
A complete 30-day United States Video run verified two chronological changes across four launch cohorts on one Meta page.
A “True Stories” documentary about four dads led to the 6-Pack page with Video and Shop now.
Baseline cohort“While Supplies Last!” scarcity copy led to the 4-Pack product page.
Baseline cohortA “45M+ Sold Worldwide!” claim moved the route to the clearance page; this cohort is still active.
Verified changeA partner creator’s humorous post replaced the documentary story on the same 6-Pack route.
Verified changePublished by Spytrend from a dated, bounded example.
One canonical domain and advertiser identity stays fixed across every segment.
01The completed-day window is split into three non-overlapping searches.
02A change requires verified members in chronological cohorts plus an observable field difference.
03The report records what stayed the same alongside each change.
04No. Launch timing and exact creative-family identity are different evidence.
No. It does not measure spend, engagement, conversions or ROAS.
The segments preserve chronological coverage and avoid losing older rows in one long result window.
The workflow keeps only ads that match the advertiser verified from the first exact-domain ad and never mixes advertisers.
Connect Spytrend MCP, choose the controlled inputs and run the four prompts.