Skill Tracer
Skills › Marketing Skills › ads › rsa-output-spec.md

rsa-output-spec.md

88 lines · skills/ads/references/rsa-output-spec.md at 88c79f6

Open on GitHub
1# Google RSA Output Spec
2
3When the user requests Google Ads RSAs (Responsive Search Ads), output MUST comply with these platform limits and structural requirements. Do not output any RSA that violates them.
4

Google RSA Output Spec

When the user requests Google Ads RSAs (Responsive Search Ads), output MUST comply with these platform limits and structural requirements. Do not output any RSA that violates them.

Raw lines 1 to 4
5## Hard limits per RSA (enforce before responding)
6
7- **Headlines:** exactly **15** per RSA, each **≤ 30 characters** (count characters, including spaces). Render as `1. ... (NN chars)` so the reader can verify.
8- **Descriptions:** exactly **4** per RSA, each **≤ 90 characters**.
9- **Paths:** up to 2 path fields, each **≤ 15 characters**.
10- **Final URL:** present, https.
11- **Pinning:** state any pinned positions explicitly. Default = unpinned unless user asks.
12- **Per-account guardrail:** Google enforces **3 RSAs max per ad group**. When the user asks for >3, group them by ad group.

Hard limits per RSA (enforce before responding)

  • Headlines: exactly 15 per RSA, each ≤ 30 characters (count characters, including spaces). Render as 1. ... (NN chars) so the reader can verify.
  • Descriptions: exactly 4 per RSA, each ≤ 90 characters.
  • Paths: up to 2 path fields, each ≤ 15 characters.
  • Final URL: present, https.
  • Pinning: state any pinned positions explicitly. Default = unpinned unless user asks.
  • Per-account guardrail: Google enforces 3 RSAs max per ad group. When the user asks for >3, group them by ad group.
Raw lines 5 to 13
14## Required sidecar artifacts (always include with RSA request)
161. **Ad group structure**, labeled `Ad group structure:` — list each ad group with its theme, target keywords (match types), and which RSAs map to it.
172. **Negative keyword list**, labeled `Negative keywords:` — minimum **8** entries, group-level vs campaign-level called out.
183. **Sitelinks** (≥ 4), **Callouts** (≥ 4 ≤25 chars), **Structured snippets** if relevant.

Required sidecar artifacts (always include with RSA request)

  1. Ad group structure, labeled Ad group structure: — list each ad group with its theme, target keywords (match types), and which RSAs map to it.
  2. Negative keyword list, labeled Negative keywords: — minimum 8 entries, group-level vs campaign-level called out.
  3. Sitelinks (≥ 4), Callouts (≥ 4 ≤25 chars), Structured snippets if relevant.
Raw lines 14 to 19
20## Medical / CFM compliance (when product context indicates pt-BR medical practice)
22If `.agents/product-marketing.md` indicates a Brazilian medical practice (CFM-regulated), the following terms are **forbidden** in headlines, descriptions, sitelinks, and callouts:
24- Superlatives: `#1`, `melhor`, `o melhor`, `melhor do brasil`, `top`, `referência`
25- Outcome promises: `garantido`, `garantia`, `cura`, `cura definitiva`, `100%`, `resultado garantido`, `livre da dor`
26- Comparative claims vs other doctors/clinics
28Use neutral framing: `atendimento`, `consulta`, `avaliação`, `segunda opinião`, `agende sua consulta`, `tire suas dúvidas`. Geo modifier (`Porto Alegre`, `POA`, `Zona Sul POA`) required where the prompt specifies a region.

Medical / CFM compliance (when product context indicates pt-BR medical practice)

If .agents/product-marketing.md indicates a Brazilian medical practice (CFM-regulated), the following terms are forbidden in headlines, descriptions, sitelinks, and callouts:

  • Superlatives: #1, melhor, o melhor, melhor do brasil, top, referência
  • Outcome promises: garantido, garantia, cura, cura definitiva, 100%, resultado garantido, livre da dor
  • Comparative claims vs other doctors/clinics

Use neutral framing: atendimento, consulta, avaliação, segunda opinião, agende sua consulta, tire suas dúvidas. Geo modifier (Porto Alegre, POA, Zona Sul POA) required where the prompt specifies a region.

Raw lines 20 to 29
30## Output ORDER (mandatory — emit in this order to avoid truncation)
321. **Ad group structure** (short)
332. **Negative keywords** (≥8, MANDATORY — emit BEFORE RSAs so it isn't dropped if output runs long)
343. **Sitelinks** (≥4)
354. **Callouts** (≥4)
365. **RSA1, RSA2, RSA3** (largest section, last — safe to truncate gracefully)

Output ORDER (mandatory — emit in this order to avoid truncation)

  1. Ad group structure (short)
  2. Negative keywords (≥8, MANDATORY — emit BEFORE RSAs so it isn't dropped if output runs long)
  3. Sitelinks (≥4)
  4. Callouts (≥4)
  5. RSA1, RSA2, RSA3 (largest section, last — safe to truncate gracefully)
Raw lines 30 to 37
38## Output template (mandatory shape)
40```
41Ad group structure:
42- AG1 [theme]: keywords (match types) → RSA1, RSA2
43- AG2 [theme]: ...
45Negative keywords:
46 Campaign-level:
47 - <kw>
48 - <kw>
49 (≥4 here)
50 Ad-group level:
51 - AG1: <kw>, <kw>
52 - AG2: <kw>, <kw>
53 (≥4 more here — TOTAL ≥8 entries)
55Sitelinks (≥4):
56 - <title (≤25)> | <desc1 (≤35)> | <desc2 (≤35)> | URL
58Callouts (≥4, each ≤25 chars):
59 - <callout>
61RSA1 — [ad group name]
62 Final URL: https://...
63 Path1: ... Path2: ...
64 Headlines (15, each ≤30 chars):
65 1. <headline> (NN chars)
66 ...
67 15. <headline> (NN chars)
68 Descriptions (4, each ≤90 chars):
69 1. <description> (NN chars)
70 ...
71 4. <description> (NN chars)
72 Pinning: H1=none; H2=none; ... (or explicit pins)
74RSA2 — ...
75RSA3 — ...
76```

Output template (mandatory shape)

Ad group structure:
- AG1 [theme]: keywords (match types) → RSA1, RSA2
- AG2 [theme]: ...

Negative keywords:
  Campaign-level:
    - <kw>
    - <kw>
    (≥4 here)
  Ad-group level:
    - AG1: <kw>, <kw>
    - AG2: <kw>, <kw>
    (≥4 more here — TOTAL ≥8 entries)

Sitelinks (≥4):
  - <title (≤25)> | <desc1 (≤35)> | <desc2 (≤35)> | URL

Callouts (≥4, each ≤25 chars):
  - <callout>

RSA1 — [ad group name]
  Final URL: https://...
  Path1: ...   Path2: ...
  Headlines (15, each ≤30 chars):
    1. <headline> (NN chars)
    ...
    15. <headline> (NN chars)
  Descriptions (4, each ≤90 chars):
    1. <description> (NN chars)
    ...
    4. <description> (NN chars)
  Pinning: H1=none; H2=none; ...   (or explicit pins)

RSA2 — ...
RSA3 — ...
Raw lines 38 to 77
78## Self-check before responding
80Before sending the output, run this checklist mentally:
82- [ ] Each RSA has exactly 15 headlines, exactly 4 descriptions.
83- [ ] Every headline is ≤30 chars; every description is ≤90 chars. Character counts printed.
84- [ ] Negative keyword list labeled and ≥8 entries.
85- [ ] Ad group structure labeled.
86- [ ] If medical (CFM): no forbidden superlative/outcome words; geo modifier present where required; language is pt-BR.
88If any check fails, rewrite before responding. Do not ship partial RSAs.

Self-check before responding

Before sending the output, run this checklist mentally:

  • [ ] Each RSA has exactly 15 headlines, exactly 4 descriptions.
  • [ ] Every headline is ≤30 chars; every description is ≤90 chars. Character counts printed.
  • [ ] Negative keyword list labeled and ≥8 entries.
  • [ ] Ad group structure labeled.
  • [ ] If medical (CFM): no forbidden superlative/outcome words; geo modifier present where required; language is pt-BR.

If any check fails, rewrite before responding. Do not ship partial RSAs.

Raw lines 78 to 88