Daily TikTok ad creative fatigue check

Every morning at 9am, spot TikTok ads whose creative is burning out and post a refresh brief for the creatives team in Slack.

Agentic Task
TikTok AdsSlack BotMarketingOperationsResearch & MonitoringNotifications & AlertsAI Reports
PromptCreate

Build me an agent workflow that hunts for TikTok ad creative fatigue once a day and posts a refresh brief to my creative team in Slack. Run it on a cron trigger every day at 9am in my local timezone.

Inputs I want on the workflow: the TikTok Ads advertiser id to monitor, the Slack channel to post to (default #creative), and tunable thresholds for fatigue (default: CTR down 15% or more week over week, frequency at or above 2.5, rising CPM with flat reach, spend past a floor like $100 with zero conversions).

Steps the agent should perform each run:

1. Use tiktok-ads Get Ads to enumerate the live/active ads for the configured advertiser. If any of those live inside Smart+ or ACO groups, also call tiktok-ads Get ACO Ad Materials so the agent can talk about the specific hooks, videos, images, and CTAs that are decaying instead of just an ad id.

2. Use tiktok-ads Run Synchronous Report broken down per ad for the last 7 days to pull CTR, frequency, CPM, impressions, spend, and conversions. Then run it again for the previous 7 days (day 8 through day 14) so we have a week-over-week comparison for every ad.

3. For each ad, reason about whether it is truly fatigued or just noisy. Do not just apply a hard threshold. Consider: is CTR down 15% or more week over week, is frequency above 2.5, is CPM rising while reach is flat, has spend crossed the floor with zero conversions? Small-volume ads with a couple of clicks are not fatigue signals — require enough impressions or spend to trust the trend.

4. Group the fatigued ads by campaign. For each ad, name the specific hook or creative element that is decaying (using ACO material names when available), list the concrete symptoms with before/after numbers, and write a short refresh recommendation: a new hook, a new opening frame, or a swapped CTA. Keep each recommendation to one or two sentences.

5. Draft a single Slack message and post it with slackbot Send a Message to the configured channel (default #creative). Use Slack mrkdwn: a short lede that says how many ads look fatigued today across how many campaigns, then per-campaign sections, then per-ad bullets with symptoms and the refresh idea. If nothing looks fatigued today, post a one-line ‘all clear’ message instead of skipping — the team should know the check ran.

Tone for the Slack post: direct, useful, no fluff. This goes to creatives, not analysts, so lead with what to reshoot and why, not a data dump. Include ad names or hook names so people know which asset to open in Ads Manager.

Operations to use: tiktok-ads Get Ads, tiktok-ads Run Synchronous Report, tiktok-ads Get ACO Ad Materials, slackbot Send a Message.

Additional information

What does this prompt do?
  • Pulls yesterday's TikTok ad performance and compares it to the week before to find creative that is losing steam.
  • Flags fatigue signals like sinking click-through rate, frequency climbing past 2.5, rising CPM with flat reach, and spend without conversions.
  • Groups the tired ads by campaign and drafts a short refresh brief per ad with a suggested new hook, opening frame, or call to action.
  • Posts the brief to your creative channel in Slack every morning at 9am so the team knows what to reshoot that day.
What do I need to use this?
  • A TikTok Ads Manager account with access to the advertiser you want monitored.
  • A Slack workspace and a channel where the creative team lives (for example #creative).
  • Rough thresholds you care about, like the click-through drop that counts as fatigue and the minimum spend before an ad is worth flagging.
How can I customize it?
  • Change the time of day or the days of the week the check runs.
  • Adjust the fatigue thresholds (click-through drop, frequency ceiling, spend floor) to match how aggressively your team refreshes.
  • Point the brief at a different Slack channel, a specific person, or a DM to your creative lead.
  • Add or remove metrics in the brief, or ask the agent to also suggest new hook copy and thumbnail ideas.

Frequently asked questions

Why does creative fatigue on TikTok need its own workflow?
TikTok creative fatigues in days, not weeks. Ads that were winners on Monday can be losing money by Friday, so a weekly review is usually too slow to catch it.
What counts as a fatigued ad?
The workflow looks at a mix of signals rather than one hard rule. It watches for a meaningful drop in click-through rate week over week, frequency climbing above about 2.5, CPM rising while reach stays flat, and spend piling up without conversions.
Will this suggest new creative, or just flag problems?
Both. For each tired ad the brief includes a short recommendation, for example a new hook, a different opening frame, or a swapped call to action, so the creative team has a starting point instead of a blank page.
Can I run it for more than one advertiser account?
Yes. You can duplicate the workflow per advertiser, or ask for a version that loops through several accounts and posts one combined brief.
Where does the Slack message get posted?
Wherever you point it. The default is a creative channel like #creative, but you can send it to a DM, a private channel, or a specific person by tweaking the prompt.

Stop finding out on Friday that Monday's ad already died.

Connect TikTok Ads and Slack once, and Geni checks for creative fatigue every morning and hands your team the refresh brief.