paid-ads-tiktok ยท diff

git:20260807.ab0a265 to git:20260916.c67fb7c

34 added, 9 removed. Audit A to A.

---
name: paid-ads-tiktok
- description: Plan and review TikTok Ads creative experiments with measurement, rights, and conversion guardrails. Use for TikTok advertising, Spark Ads, short-form video ads, creator briefs, TikTok campaign setup, or TikTok performance exports.
- argument-hint: "<goal, product, creator asset, or TikTok export>"
+ description: Audit, diagnose, and safely operate connected TikTok Ads accounts through the NotFair MCP. Use for TikTok advertising, Spark Ads, short-form video ads, campaign or ad-group analysis, spend, conversions, targeting, creative, budgets, bids, creator briefs, campaign setup, or approved TikTok Ads changes.
+ argument-hint: "<account, campaign, date range, or TikTok Ads goal>"
---
- # TikTok Ads Planning
+ # TikTok Ads
- Read `../shared/operating-contract.md` and `../shared/measurement-framework.md`. This plugin does not declare a first-party NotFair TikTok MCP mutation surface; plan and review from verified source material only.
+ Read `../shared/operating-contract.md` and `../shared/measurement-framework.md` before acting. Use the live account data from the connected platform as the source of truth.
- ## Make the first seconds testable
+ ## Establish the live scope
- Define the conversion event, measurement owner, destination, and approved offer before writing creative. Build concepts around a distinct first-second hook, product demonstration or proof, native-format production direction, CTA, and placement-safe crop. Verify creator rights, music licensing, testimonials, and price/result claims; label unknown proof `needs_substantiation`.
+ 1. Follow [`../../docs/mcp-connection.md`](../../docs/mcp-connection.md). Resolve `~~tiktok-ads` to the live connection. Use its current instructions and capability descriptions to choose tools, and verify the requested platform and account from live data. Do not infer access from another connected platform.
+ 2. Confirm the selected advertiser with a harmless account/setup read. If the connector is missing or unauthorized, direct the user to connect or re-authorize TikTok Ads and stop before claiming live access.
+ 3. Record the advertiser currency, timezone, objective, conversion definition, attribution basis, and requested date window. Treat tracking gaps as limitations, not zero performance.
- Use a small slate of genuinely different hooks or formats. Each includes the audience hypothesis, creative variable, primary metric, guardrail, expected exposure, review date, and what result would retire the concept. Do not treat views or CTR as a conversion win without the named downstream measure.
+ This is the TikTok Ads Marketing API v1.3 surface, distinct from creator and Shop APIs. Business membership, billing, payments, creator data, and TikTok Shop are not exposed by this Ads integration. Discover exact tool schemas before calling tools; `advertiser_id` is always the selected authorized account, and long IDs must be preserved as strings. The connector also exposes code-mode for batched account-scoped reads. Older clients may still reach a dedicated `/api/mcp/tiktok_ads` route; do not add that as a second plugin MCP server.
- ## Operator handoff
+ ## Diagnose with one broad read
- Give the human operator an exact launch brief: objective, budget in account currency, targeting logic, exclusions, event/pixel requirements to validate in the current platform UI, creative files needed, and status. Do not invent TikTok settings, eligibility, budget floors, or publication confirmation without a current verified source.
+ Pull the delivery entities and performance relevant to the question. Choose available read capabilities and batch related data when useful.
+
+ Interpret the platform correctly:
+
+ - Budget and bid values are advertiser currency units, not micros or Meta cents.
+ - API `code` must be zero even when HTTP is 200. Preserve request IDs for support.
+ - Honor rate limits; Basic quotas vary by endpoint. Reconnect on expired or revoked access.
+ - Reports depend on advertiser timezone and may lag. Compare complete equivalent periods and name spend, impressions, CTR, conversions, CPA, or ROAS only when the returned fields support them.
+
+ Lead with the business decision: strongest contributor, largest material risk, likely cause supported by data, and the smallest useful next action. Separate measured facts from inference.
+
+ When the request is a creative or launch brief rather than an account mutation, keep the first seconds testable: a distinct hook, product demonstration or proof, native-format direction, CTA, and placement-safe crop. Verify creator rights, music licensing, testimonials, and price/result claims; label unknown proof `needs_substantiation`. Do not treat views or CTR as a conversion win without the named downstream measure.
+
+ ## Execute approved changes safely
+
+ Use a supported write capability and respect its current contract. Show the exact advertiser, entity, current value, proposed value, spend exposure, risk, and rollback before acting. Preview, obtain approval, apply once, then read back.
+
+ - Previews are local validation only, not provider validation.
+ - Never retry ambiguous writes automatically.
+ - Prefer pause/enable over deletion.
+ - Create delivery entities DISABLE unless activation is explicitly requested.
+ - After an approved mutation, use the returned evidence or a fresh read to confirm the resulting state. Report partial failures plainly.
+
+ Finish with the confirmed action, observation window, success metric, and rollback trigger. A proposal remains `ready_for_review`; call it `published` only after the live connector confirms it.