{"id":48521,"plugin_id":"plugin_asdk_app_6ac0b6df2c148191992b3a4334f2f833","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:36:41.462Z","digest":"10a1fef7e5f2db519cc51f2b317db95a6910ed7e9ce4635af614ed35dfc094aa","against":null,"payload":{"description":"Pull and summarize synced Meta ads performance from AdStellar grouped by campaign, ad set, ad, or creative component over a date range. Use when the user asks how their ads, campaigns, or spend are performing, or wants ROAS, CPA, CTR, or budget breakdowns.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":485}],"name":"analyze-ad-performance","skill_md_contents":"---\nname: analyze-ad-performance\ndescription: Pull and summarize synced Meta ads performance from AdStellar grouped by campaign, ad set, ad, or creative component over a date range. Use when the user asks how their ads, campaigns, or spend are performing, or wants ROAS, CPA, CTR, or budget breakdowns.\n---\n\nUse this skill when the user asks about the results of their Meta ads and their AdStellar account is connected.\n\n## Steps\n\n1. Call `list_ad_accounts` first. Note each account's currency and `last_synced_at`; if data is more than a day old, say so in the summary. If the team has several ad accounts and the user did not specify one, ask which one or report per account.\n2. Call `query_performance` with:\n   - `breakdown`: `campaign` (default), `ad_set`, or `ad` for entity levels, or one of the creative-component breakdowns listed in the tool's schema when the user asks about hooks, formats, or other creative elements.\n   - A date range: `preset` (for example `last_7d` or `last_30d`; the tool schema lists the valid presets) or explicit `startDate` and `endDate` in YYYY-MM-DD.\n   - `adAccount`, `campaignId`, or `adSetId` filters when the user names them, and `limit` when they want a top-N list.\n3. Summarize what the numbers say: total spend, results, cost per result, ROAS, and the top and bottom performers by the metric the user cares about. Use the account's currency. Present rows in a compact table when there are more than three.\n4. When comparing periods, run `query_performance` twice with the two ranges and compare like for like.\n\n## Do not\n\n- Do not spell the ad-set breakdown as adset or adgroup; the value is `ad_set`.\n- Do not compute metrics that are not derivable from the returned rows, and do not mix currencies across accounts without saying so.\n- Do not treat `purchases` or `results` as revenue; ROAS comes from the tool when Meta reports it.\n- Do not pause, edit, or launch anything from this skill. When the user wants to act on the numbers, hand off to the optimize-campaigns skill, which previews and confirms every change.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}