Daily LinkedIn Ads creative fatigue triage in Slack
Every weekday at 8am, catch fatiguing LinkedIn Ads creatives before they burn budget, pause the worst offenders automatically, and post the triage to Slack.
Integrations
LinkedIn Ads
Slack Bot
Type
Categories
- Marketing
Build me an agent workflow that runs every weekday at 8am and does per-creative fatigue triage on my active LinkedIn Ads creatives, then posts the report to Slack. This is different from a weekly campaign-level digest: it operates at the creative level and can pause the worst offenders automatically.
Trigger: cron, Monday through Friday at 8am in my timezone.
Step 1. Use LinkedIn Ads Search Creatives to list every ACTIVE creative across the ad accounts I have access to. Capture the creative URN, the parent campaign URN, and the creative name or reference so we can label it in the report. If needed, use LinkedIn Ads Get Campaign to resolve the campaign name for each creative.
Step 2. Use LinkedIn Ads Get Ad Analytics with pivot=CREATIVE and timeGranularity=DAILY over the last 14 days. Split the results into two windows: the last 7 days and the prior 7 days. For each creative, aggregate impressions, clicks, cost, and approxUniqueImpressions (reach) for both windows.
Step 3. For each creative, compute: frequency = impressions divided by reach in the last 7 days, week-over-week CTR change, week-over-week CPC change, and current CTR versus LinkedIn's 0.4 percent benchmark.
Step 4. Flag a creative as fatiguing if it hits at least two of these signals: frequency at or above 2.5x, CTR down 20 percent or more week over week, CTR below 0.4 percent, or CPC up 25 percent or more week over week. Mark the worst offenders (frequency at or above 3.5x AND CTR down 40 percent or more) as auto-pause candidates.
Step 5. For each auto-pause candidate, use LinkedIn Ads Update Creative with PARTIAL_UPDATE to set status to PAUSED. For softer flags, do not pause, just include a recommendation in the report.
Step 6. Use Slack Bot Send a Message to post the report to my ads channel (I will pick the exact channel during setup). Format it as one section per flagged creative with: campaign name, creative name or reference, current frequency, week-over-week CTR delta, week-over-week CPC delta, which fatigue signals fired, the action taken (Paused automatically) or recommended (Pause and refresh), and a short suggested next creative angle to test. If nothing is fatiguing, post a short all-clear message instead.
Keep the tone tight and scannable. I want to be able to skim the Slack post in 30 seconds and know exactly which creatives are dying and what to do next.
What it does
- Scans every active LinkedIn Ads creative each morning and compares the last 7 days to the prior 7 days to spot creative fatigue.
- Flags any creative hitting the classic warning signs: rising frequency, falling click-through rate, or spiking cost per click.
- Automatically pauses the worst offenders so they stop draining budget, and recommends a pause plus a fresh creative angle for softer signals.
- Posts a clean Slack report with one section per flagged creative: campaign name, current frequency, week-over-week deltas, action taken, and a next creative idea to test.
What you’ll need
- A LinkedIn Ads account with a Campaign Manager admin role on the ad accounts you want monitored.
- A Slack workspace and the channel where you want the daily fatigue report posted.
- Roughly two weeks of active creatives running, so there is enough data to compare week over week.
How to customize it
- Change the schedule (for example, only Monday through Thursday, or twice a week instead of daily).
- Adjust the fatigue thresholds to match your brand: tighter frequency caps for cold audiences, or a stricter click-through drop before flagging.
- Choose which creatives get paused automatically versus which only get a recommendation, and pick the Slack channel or DM where the report lands.
Use cases
- Notifications & Alerts
- AI Reports
- Research & Monitoring