{"id":"assets","name":"google-ads-assets","summary":"サイトリンク、コールアウト、構造化スニペット、画像アセット、パフォーマンスマックスのアセットブリーフなど、Google広告の資産を計画・検証・安全に公開します。","body":"# Google Ads Asset Planner\n\nTurn approved business evidence into an asset manifest that can be reviewed and, only where the connected MCP supports it, published safely.\n\n## Setup\n\nRead and follow `../shared/preamble.md` and `../shared/analysis-principles.md`. Read `{data_dir}/business-context.json` and `{data_dir}/personas/{accountId}.json` before proposing assets. If either is missing or stale, hand off to `/google-ads-audit`; an ungrounded asset pack is generic inventory.\n\nRead `../shared/policy-registry.json` before PMax or policy-sensitive work. If its PMax entry is stale, verify the relevant Google policy or platform requirement before stating a current rule.\n\n## Build from evidence, not filler\n\nPull the existing campaign, ad group, and asset coverage with `runScript` before recommending new assets. Use search terms, converting ads, landing-page content, approved offers, and customer language as source material. Do not infer ratings, pricing, guarantees, availability, or product attributes.\n\nFor each proposed asset, produce this reviewable manifest:\n\n| Field | Required content |\n|---|---|\n| Asset family | Callout, sitelink, structured snippet, image, or PMax brief |\n| Scope | Account, campaign, ad group, or named PMax asset group |\n| Concept ID | Persona × motivation × angle |\n| Copy or creative direction | Exact approved text, or a production-ready visual brief |\n| Evidence and claim status | Source for every factual claim; mark unsupported claims `needs_substantiation` |\n| Landing destination | Final URL and message-match note when applicable |\n| Status | `ready_for_review`, `blocked`, or `approved_to_publish` |\n\nKeep the brief deliberately varied: each concept should test a different motivation or visual hook, not a cosmetic rewrite. Ask for missing proof instead of inventing it.\n\n## Platform-aware execution\n\n- Validate copy and destination fields against the current connected tool metadata before creating anything. Do not trust memorized limits or silently truncate assets.\n- Only create/link callouts, sitelinks, structured snippets, or image assets after the user approves the exact manifest. Use dedicated mutation tools, record the returned `changeId`, and read back the resulting entity.\n- Verify image ownership, landing-page rights, and policy-sensitive claims before an image asset is uploaded. A generated image is a production input, not proof that the claim in it is allowed.\n- The current NotFair MCP surface can create/link supported asset-library types and can enable or pause PMax asset groups. It does **not** establish that it can compose or edit a PMax asset group. Check `tools/list` before promising that operation; otherwise deliver the PMax brief for completion in Google Ads.\n\n## PMax brief\n\nFor a PMax request, produce a cross-placement production brief rather than a generic list of slogans:\n\n1. State the product or feed scope, conversion goal, audience signal, and landing destination.\n2. Provide 3–5 concept cards, each with a visual hook, on-screen message, proof source, CTA, and placement-safe adaptation notes.\n3. Identify the missing inputs explicitly: approved logo, image/video source files, feed readiness, rights, or substantiation.\n4. Keep Search RSA language complementary to PMax text assets; avoid duplicating the same promise without a reason.\n5. Flag PMax/Search overlap and brand-exclusion questions for `/google-ads` before scaling.\n\n## Guardrails\n\n1. Never publish an unsupported claim, a destination you did not validate, or an asset with unknown rights.\n2. Never call a production brief an uploaded asset. Separate `ready_for_review` from `published`.\n3. Confirm scope and exact asset count before every write; mutations must be reversible through `undoChange` where supported.\n4. Defer bid, budget, keyword, and campaign-structure changes to `/google-ads`; defer RSA testing to `/google-ads-copy`.","author":"@nowork-studio","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/nowork-studio/notfair-plugin/tree/main/google-ads/assets","license":"MIT","category":"writing","lang":"en","tokens":809,"stars":0,"calls30d":2,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[{"path":"evals/evals.json","size":1578,"sha256":"7b17bba8e6a7cfc2a820671945f5053bdc9876fcdf4b708f3b0b1695bbfe2bef"}],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}