ad-x — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ad-x (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.
This skill defines exactly what to produce for an X (Twitter) ad. It is platform-spec only: the slots X exposes for Promoted Posts, Website Cards, App Cards, and Video Ads, the character limits, asset ratios, and the CTA button enum.
| Format | What You Produce |
|---|---|
| Promoted Post | Post text (280 char), optional media, native append (no extra card) |
| Promoted Post + Website Card | Post text + image/video + card title + URL + CTA |
| Promoted Post + App Card | Post text + image/video + card title + app ID + CTA |
| Video Ad | Promoted Post with video + optional Website / App Card append |
| Image Carousel | 2–6 images, each with optional URL + CTA |
| Vertical Video Ad | Full-screen 9:16 video — runs in Immersive Media Viewer (Video tab) and dedicated placements |
| Spotlight Takeover | 24h top of Explore "For you" tab — premium |
| Timeline Takeover | 24h takeover on Home Timeline — premium |
| Trend Takeover / Trend Takeover+ | Premium trend sponsorship; Trend Takeover+ adds auto-playing video on tap |
| Amplify Pre-Roll | Pre-roll on publisher video across 15+ content categories; 1:1 recommended |
| Dynamic Product Ads (DPA) | Catalog-driven, requires X Pixel/CAPI + Shopping Manager; single/collection/carousel render |
| Slot | Limit | Notes |
|---|---|---|
| Post text | 280 chars | Same as organic; emojis count |
| Media | 1 image, up to 4 images, or 1 video, or 1 GIF | Image OR video, not both |
| Card append | Optional | If used, draws Website Card or App Card below post |
| Slot | Limit | Notes |
|---|---|---|
| Card title | 70 chars (2026: verify in Ads Manager — X revises limits) | Shown below image/video |
| Card image | 1.91:1 (1200×628) or 1:1 (800×800) | Required if no video |
| Card video | 16:9, 1:1, or 9:16 | Up to 2:20 — sweet spot 15–60s |
| Destination URL | URL | Landing page |
| CTA button | Enum | See CTA section |
| Display URL | Auto-shortened | Cannot be customised |
| Slot | Limit | Notes |
|---|---|---|
| App icon | Pulled from app store | Auto |
| App name | Pulled from app store | Auto |
| App rating | Pulled from app store | Auto |
| Card image | 1.91:1 or 1:1 | Required if no video |
| Card video | 16:9, 1:1, 9:16 | Up to 2:20 |
| CTA button | "Install", "Open", "Play", "Book" | Limited App CTA set |
| Asset | Spec | Notes |
|---|---|---|
| Promoted Post image | 1200×675 (16:9) or 1200×1200 (1:1) | JPG / PNG, max 5MB |
| Multi-image (carousel) | 2–6 images, each 800×800 (1:1) | Up to 6 images |
| Promoted Post video | 16:9 (1920×1080) or 1:1 (720×720) or 9:16 (720×1280) | MP4, max 1GB, up to 2:20 |
| Vertical Video Ad | 9:16 (1080×1920) | Full-screen Explore placement |
| GIF | Up to 15MB | Auto-loops |
| Video bitrate | 6,000–10,000 kbps | Higher for vertical |
| Video frame rate | 29.97 or 30 fps | 60 fps allowed |
X's creative specs page lists these CTA labels; the link-preview format with a headline below the media and a CTA button rolled out first for the Sales objective in 2025:
Older labels (Learn More, Sign Up, Visit Site, Shop Now) may still appear on legacy cards or other objectives — pick from what Ads Manager offers for the chosen objective.
Promoted Posts compete in the same feed ranking as organic posts, so the same quality signals apply:
Takeover surfaces (Timeline, Trend, Spotlight) bypass the auction but still pass policy review.
# X Ads — [Product] [Campaign Name]
## Format
[Promoted Post / Website Card / App Card / Video Ad / Carousel / Vertical Video]
## Destination URL
[Landing page URL]
## Promoted Post Text (≤280, ≤150 ideal)
> [Copy — first line is the hook]
Char count: [N]/280
## Website Card (if attached)
- Card title (≤70 char): [title] — [chars]
- CTA: [from enum]
- Image / video: see visual spec
## Visual Spec
- Asset type: [Image / Video / GIF / Carousel]
- Ratio: [16:9 / 1:1 / 9:16]
- Shot: [concrete scenario]
- Text overlay (video): "[per-scene captions]"
- First frame (video): [what's visible at 0s — must hook]
## Carousel (if used)
| # | Image (1:1) brief | URL | CTA |
|---|-------------------|-----|-----|
| 1 | [shot] | [URL] | [enum] |
| 2 | ... | ... | ... |
## Variant Set
| # | Angle | Post Text (≤280) | Card Title | CTA |
|---|-------|------------------|------------|-----|
| 1 | [angle] | [hook line + rest] | [≤70] | [enum] |
| 2 | ... | ... | ... | ... |
## Pre-Submit Checklist
- [ ] Post reads native — could pass as organic
- [ ] Post text ≤280 char (ideally ≤150)
- [ ] First line hooks in ≤1 second of read
- [ ] No "click the link below" or "Hey [audience]"
- [ ] One link OR one card — not both
- [ ] Emojis ≤2 and load-bearing, not decorative
- [ ] No hashtag spam
- [ ] CTA from correct enum (Website vs App card)
- [ ] Video captioned for silent autoplay
- [ ] Brand-safety: crude language out, defensible edgy in
- [ ] Visual ratio matches placement~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.