Skip to content
Back to skills

Gads Creative

ASecurity

Creative briefs, image and YouTube video assets, and bounded Video responsive and responsive Display ad edits. Every write requires interactive review.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 15, 2026
ai-agentspythongoapi

Works with

  • api

Security analysis

A100/100

Scanned October 15, 2026

npx -y skills add arcbaslow/google-ads-agents --skill gads-creative --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gads Creative?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gads Creative
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/arcbaslow-gads-creative/badge)](https://www.skillsdirectory.com/skills/arcbaslow-gads-creative)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: gads-creative
description: Creative briefs, image and YouTube video assets, and bounded Video responsive and responsive Display ad edits. Every write requires interactive review.
user-invokable: true
argument-hint: "<customer-id> <site-url>"
license: MIT
metadata:
  version: "0.2.0"
---

Routes to the `gads-creative` subagent. The agent runs the four-step
flow:

```
python scripts/gads_creative.py brief --site <url> --output /tmp/brief.json
python scripts/gads_creative.py prompts --brief /tmp/brief.json --output /tmp/prompts.json
# user generates images off-platform (Ads UI, Midjourney, designer, etc.)
python scripts/gads_creative.py upload --customer <CID> --image /tmp/hero.png --apply --json
python scripts/gads_creative.py attach --customer <CID> --asset-resource "..." --asset-group-id <AG> --field-type MARKETING_IMAGE --apply --json
```

We do not bundle an image generator. Supply images from a tool or designer
you choose; this adapter handles upload and attachment only.

Search image extensions use the same `attach` subcommand with
`--campaign-id` and `--field-type AD_IMAGE`.

The supported write adapters display the exact operation JSON and prompt for
`y/N` in Python, including for validation. `--apply` validates before sending
the same operations. Let the operator review and answer the prompt; do not
pipe approval or substitute a direct API call. stdout remains the JSON result.

Structured failure output uses `error_code`, a safe `error` message and a
`retryable` hint. No automatic retries are performed. For a failed write,
check account state before retrying; a timeout does not prove it was unapplied.

Treat redacted failures as unavailable evidence, not an empty or healthy result.
See docs/REPORTING.md for error categories. Never retry a write automatically.

For supplied videos and existing ads, use these independent commands:

```sh
python scripts/gads_creative.py upload-video --customer <CID> --file video.mp4 --title "Title" --apply --json
python scripts/gads_creative.py create-video-asset --customer <CID> --video-id Abc_def-123 --name "Video" --validate-only --json
python scripts/gads_creative.py edit-ad --customer <CID> --ad-id <AD> --input ad-edit.json --validate-only --json
```

Uploads have no API validation and no `--validate-only`. Without `--apply`,
only local checks run. Review the file path, size, title, channel and privacy
before upload. Processing polls every 10 seconds for up to 10 minutes. Asset
creation follows `PROCESSED` and requires a second review, with validation.
Retain the upload resource and video ID if this step returns
`uploaded_without_asset`; inspect uncertain writes before using
`create-video-asset`, or use `RemoveYouTubeVideoUpload` to remove the upload.

Privacy defaults to `UNLISTED`, which is viewable by link. Google-managed
channels allow only `UNLISTED`. Brand channels require `--channel-id` and user
OAuth, and allow `PUBLIC` or `UNLISTED`; service accounts are unsupported.

Ad edits accept only Video responsive ads in VIDEO campaigns and responsive
Display ads in DISPLAY campaigns. The Video input must include `videos`,
`business_name` and `logo_images`. Use inline text and same-customer asset
resource names; see docs/WRITES.md for the complete JSON contract. These are
AdService edits, not Video campaign mutations. Search image attachment now
checks that the selected campaign is SEARCH.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.