Audit how your chat cards render and fix delivery blockers
Lists every ad in a ChatGPT Ads campaign, renders each card, reads OpenAI's delivery blockers, diagnoses zero-impression ads and applies approved copy, destination and image fixes.
When to use it
When your ChatGPT Ads are not getting impressions or you suspect cards look broken, truncated or are blocked in review.
What you get
A per-ad table with status, review state, blockers and rendering issues, plus approved copy, destination and image fixes previewed and then applied with new previews.
Does it change anything in my account?
Only with your approval. The assistant first shows a preview of every change and waits for your go-ahead.
Works with
ChatGPT Ads
Fill in before sending
[ChatGPT Ads campaign][image URL or attached photo]
List every ad in ChatGPT Ads campaign [ChatGPT Ads campaign] with chatgpt_ads_insights: scope it to the campaign, level ad, last 7 days, include_zero true. This gives every ad id together with its 7-day impressions. For each ad, read the full creative with chatgpt_ads_details, render it with chatgpt_ads_ad_preview and note the serving issues and review status OpenAI reports. If any ad has zero impressions, run diagnose_chatgpt_ads_delivery for the campaign with check_landing_pages true.
Build one table with these columns: ad, status, review status, impressions in the last 7 days, reported blockers, rendering issues, and the proposed fix. Rendering issues include truncated text, a missing or poorly cropped image, an unclear call-to-action, or a card that does not say which service or area we cover.
Sort the fixes into three groups:
1) Copy fixes: draft the replacement title and body.
2) Destination fixes: propose the correct URL, using the landing page findings from the diagnosis.
3) Image fixes: say what kind of image is needed. If I give you a photo ([image URL or attached photo]), turn it into a public URL with upload_image and include it in the update. Otherwise leave the image as it is.
If the diagnosis points to bids, budget, targeting, schedule or account spend limits, list those separately and do not change them.
Before I approve, remind me that editing the title, body, destination or image starts a new OpenAI review, so the ad stops serving until that review passes. Show the update_chatgpt_ads_ad changes as a preview (confirm=false) with the current and proposed values side by side, and wait for my approval. After the changes are applied, render the previews again and report the new review status, so I can confirm that the cards look right.
Reads every enabled RSA in a campaign, matches each final URL to its WordPress page (Elementor included) and rates whether the page repeats the ad's keyword, offer and CTA. Proposes the smallest fix and applies nothing without approval.
When to use itWhen people click your ads but the WordPress landing page does not repeat what the ad promised, hurting conversions or Quality Score.
Lists disapproved and limited RSAs with Google's policy reason and evidence, rewrites only the assets Google flags, and edits the existing ad after a before and after preview. Flags issues that text changes cannot fix.
When to use itWhen some of your Google Ads are disapproved or running with limited serving and you need to fix the wording that Google flagged.
A list of fatigued Meta ads by frequency, CTR and cost thresholds, with two replacement copy versions for each and a safe in-place swap after approval.
When to use itWhen your Meta ads have been running a long time and results are slipping while frequency climbs.