pmax-campaign
Skill0 starsChanged 49 days agoMITView on GitHub
Build a Google Ads Performance Max campaign end to end in the Ads UI — goals, bidding, location/language, asset group (headlines, descriptions, images, logos, videos, sitelinks, search themes), budget — and stop at the summary for the user to publish. Includes the traps (location silently "all countries", shared sitelinks editing other campaigns, video upload channel, low-budget warnings, account balance). Use when creating, duplicating, or fixing a PMax / "Tối đa hoá hiệu suất" campaign.
In this repository7 other files it gives its agents.
- ad-assetsSkill
- conversion-trackingSkill
- google-growth-journeySkill
- google-ui-automationSkill
- growth-auditSkill
- search-console-seoSkill
- tag-managerSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 6 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 53
Every headline must stand alone (they are shuffled).
- Distinctive: line 55
No superlatives you can't prove, no ALL CAPS words, no "click here", no phone numbers in text assets.
- Very specific: line 57
Use ${CLAUDE_PLUGIN_ROOT}/templates/ads-copy-sheet.md and run ${CLAUDE_PLUGIN_ROOT}/scripts/check_copy.py sheet.md to count characters …
- Distinctive: line 73
Add one later when a customer list or GA4 purchaser audience exists.
- Distinctive: line 83
Read the whole summary [Tóm tắt] and compare with what you set: name, goals, location, language, asset counts, budget.
- Distinctive: line 86
Do not press Publish [Xuất bản chiến dịch].
- Distinctive: line 93
Prefer a fresh campaign in the other domain's own account.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Performance Max campaign
Prerequisite: conversion-tracking is done and at least the primary conversion action
exists in the account. PMax without a working conversion is a random spender.
Vietnamese UI labels are given in brackets because the UI follows the account language.
1. Create
Campaigns → + New campaign [Chiến dịch mới] → objective Sales [Doanh số] (or
Leads) → choose the goals that are real conversions (e.g. Purchases + Page views) and
remove the rest → type Performance Max [Tối đa hoá hiệu suất] → business website →
campaign name like Brand — domain.tld (name is how humans tell campaigns apart later).
2. Bidding [Đặt giá thầu]
- New account / no conversion history: Maximize conversions [Tối đa hóa chuyển đổi], no target CPA. Switch to target CPA/ROAS after ~30 conversions in 30 days.
- Customer acquisition: "bid equally for new and existing" unless they have a customer list of 100+ active members (Google refuses the setting without one).
3. Campaign settings [Cài đặt chiến dịch]
- Location — the trap. The radio "Vietnam" can appear selected while the summary says "All countries and territories". Choose "Enter another location" [Nhập một vị trí khác], type the country, click Include [Bao gồm], and confirm a row with the country and its reach appears. Then reload the summary and read the value again.
- Language: the audience's language (Vietnamese). Don't add English "just in case".
- EU political ads question may appear: answer "No" unless it's true.
4. Asset group [Nhóm thành phần]
Limits (the UI counter is authoritative — limits change):
| Asset | Count | Length / size |
| Headlines | 3–15 | ≤ 30 chars |
| Long headlines | 1–5 | ≤ 90 chars |
| Descriptions | 2–5 | ≤ 90 chars, at least one ≤ 60 |
| Business name | 1 | ≤ 25 chars |
| Images | up to 20 | 1.91:1 (1200×628), 1:1 (1200×1200), 4:5 (960×1200) |
| Logos | up to 5 | 1:1 (1200×1200), 4:1 (1200×300) |
| Videos | up to 5 | ≥ 10 s; give 16:9, 1:1 and 9:16 or Google auto-generates ugly ones |
| Sitelinks | 4+ | text ≤ 25, two description lines ≤ 35 each |
| Search themes | up to 25 (UI shows current max) | real queries people type |
Copy rules that pass review and convert:
- Every headline must stand alone (they are shuffled). Mix: brand, core service, proof, price/free, call to action.
- No superlatives you can't prove, no ALL CAPS words, no "click here", no phone numbers in text assets.
- Use
${CLAUDE_PLUGIN_ROOT}/templates/ads-copy-sheet.mdand run${CLAUDE_PLUGIN_ROOT}/scripts/check_copy.py sheet.mdto count characters before typing.
Creative production: see skill ad-assets.
Videos: uploading from computer opens a "choose channel" dialog. It may default to the
user's personal YouTube channel. Pick "Video ad upload channel" (the Ads-managed
unlisted channel). Verify afterwards: https://www.youtube.com/oembed?url=https://youtu.be/<id>&format=json
→ author_name must not be the personal channel.
Sitelinks are shared. Editing an existing sitelink shows "applies to N campaigns" [áp dụng cho 2 chiến dịch]. If you are building a second campaign (e.g. a copy for another domain) cancel, create new sitelinks for this campaign, and remove the inherited ones from it only. Then open the original campaign and confirm its sitelinks are untouched.
Audience signal [Tín hiệu đối tượng]: optional. "No signals" warning is a suggestion. Add one later when a customer list or GA4 purchaser audience exists.
5. Budget [Ngân sách]
Enter the daily amount (clicking the field sometimes misses and Ctrl+A selects the page — target the input element directly). A "budget too low" warning is advice, not a blocker. Tell the user the expected weekly spend (daily × 7) and that learning takes 1–2 weeks.
6. Summary → stop
Read the whole summary [Tóm tắt] and compare with what you set: name, goals, location, language, asset counts, budget. The summary can render partially (blank name, "Asset group 1", missing URL) after a reload — if so, open that step and read the real value there. Do not press Publish [Xuất bản chiến dịch]; hand over to the user with a list of:
- account balance (billing summary shows "Account out of funds" [Đã hết số dư]? → top up),
- identity verification prompt (user must complete; "Skip" only postpones it),
- anything you could not verify.
Duplicating to another domain
Prefer a fresh campaign in the other domain's own account. Copying inside the same account keeps the original's conversion goals, sitelinks and brand assets; every one of those must be replaced, and a paused duplicate left behind confuses reporting — remove it once the new one is live (only when the user asks; removal is permanent).
After publishing
Status "Eligible (Learning)" [Đủ điều kiện (Đang học)] = approved and serving.
Leftover drafts [Bản nháp] never serve; harmless. Check again after 48 h with
growth-audit → post-launch section.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

