ad-copy-writer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ad-copy-writer (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Generate high-converting ad copy for Google, Microsoft, Meta, LinkedIn, TikTok, Reddit, Snapchat or X Ads. Works with no accounts connected.
/ad-copy-writer google "project management tool" — Google Ads copy /ad-copy-writer meta example.com — Meta Ads copy from website /ad-copy-writer linkedin "B2B SaaS" — LinkedIn Ads copy /ad-copy-writer reddit|tiktok|snapchat|x|microsoft example.com — other platforms
| Job | Primary | Also answers it | What differs |
|---|---|---|---|
| Product and competitor research | WebFetch / WebSearch | — | Always available |
| Angles already running (enhanced when connected) | The target platform's ad MCP | Any other connected ad platform | Read-only; used to avoid repeating angles, never to edit ads |
Pulling live ads per platform (tool names omit mcp__cogny__mcp__<Prefix>__):
| Platform | Prefix | Read current copy |
|---|---|---|
Google_Ads | tool_execute_gaql(customer_id, query: "SELECT ad_group_ad.ad.responsive_search_ad.headlines, ad_group_ad.ad.responsive_search_ad.descriptions, metrics.ctr FROM ad_group_ad WHERE ad_group_ad.status = 'ENABLED' AND segments.date DURING LAST_30_DAYS") | |
| Microsoft | Bing_Ads | tool_get_ad_groups → tool_get_ads(account_id, ad_group_id) |
| Meta | Meta_Ads | tool_get_ads(ad_account_id, status_filter: ["ACTIVE"], include_creative: true) |
LinkedIn_Ads | tool_get_creatives(ad_account_id, status_filter: ["ACTIVE"]) | |
| TikTok | TikTok_Ads | tool_get_ads(advertiser_id, status_filter: [...]) |
Reddit_Ads | tool_get_ads(ad_account_id) | |
| Snapchat | Snapchat_Ads | tool_list_organizations → tool_list_ad_accounts → tool_get_creatives(ad_account_id) |
| X | X_Ads | tool_get_tweets(account_id, tweet_type: "PUBLISHED"), tool_get_cards(account_id) for card headlines |
| Apple Search Ads | Apple_Search_Ads | tool_list_acls → tool_get_campaigns → tool_get_ad_groups → tool_get_targeting_keywords (keywords, not copy) |
If a URL is provided, WebFetch it and extract:
If a description is provided, use that directly.
WebSearch for competitors to understand:
If the target platform is connected (check mcp__cogny__list_integrations), pull its active ads with the tool above. List the angles, claims and CTAs already in use, and mark the top performers by the platform's own CTR where available. Then write new copy that tests different angles, and say which existing angle each new variation is meant to beat. If nothing is connected, skip this step.
#### Google Ads (RSA format) Generate 15 headlines (max 30 chars each) and 4 descriptions (max 90 chars each):
Headlines — mix of:
Descriptions — mix of:
#### Meta Ads Generate 3 variations:
Angles:
#### LinkedIn Ads Generate 3 variations:
Angles:
#### Microsoft Ads (RSA format) Same limits as Google: 15 headlines (30 chars), 4 descriptions (90 chars), 2 display paths (15 chars). Reuse the Google set, but check the audience skews older and more desktop/B2B (LinkedIn profile targeting is available), so favour clarity over slang.
#### TikTok Ads Generate 3 variations:
Angles: native hook in the first line ("POV:", "I tried…"), demo/result, creator testimonial. Copy supports the video; it never explains it.
#### Reddit Ads Generate 3 variations:
Angles: plain-spoken problem statement, honest comparison, "we built this because…". No hype words; Reddit users downvote ad-speak.
#### Snapchat Ads Generate 3 variations:
Angles: instant benefit, offer/urgency, playful/social.
#### X Ads Generate 3 variations:
Angles: hot take / contrarian, number-led proof, thread-style teaser.
#### Apple Search Ads There is no free-text ad copy: ads are built from the App Store listing (app name 30 chars, subtitle 30 chars, screenshots) and custom product pages. Instead deliver: subtitle options (30 chars), 3 custom product page themes matched to keyword groups, and the keyword groups themselves. If Apple_Search_Ads is connected, read live keywords with tool_get_targeting_keywords(org_id, campaign_id, ad_group_id) first.
Present each variation clearly labeled with character counts:
=== Google Ads RSA ===
Headlines (30 char max):
1. "Cut Your Ad Spend by 40%" (25)
2. "AI Marketing Automation" (24)
...
Descriptions (90 char max):
1. "Stop wasting budget on underperforming ads. Our AI optimizes your campaigns 24/7." (83)
...
=== Meta Ads ===
Variation 1 (Pain → Solution):
Primary: "..."
Headline: "..."
...~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.