[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M781ESVY4QYSQ56ZPQ9DA156":3,"skill-same:01M781ESVY4QYSQ56ZPQ9DA156":47},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":29,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M781ESVY4QYSQ56ZPQ9DA156","pm-facebook-marketing",null,"Facebook Marketing connector knowledge and safe action guide.","polymetrics-ai\u002Fcli","polymetrics-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F177650388?v=4","01M77Z920R1RTP5NXCP1V1HNMS","Polymetrics","01M77Z921DPWZC4DQSSZNWF82B",7,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-facebook-marketing\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: pm-facebook-marketing\ndescription: Facebook Marketing connector knowledge and safe action guide.\n---\n\n# pm-facebook-marketing\n\n## Purpose\n\nReads Facebook Marketing ad accounts, campaigns, ads, ad sets, ad creatives, custom audiences, and performance insights, and creates\u002Fupdates campaigns and ad sets, through the Graph API.\n\n## Icon\n\n- id: facebook\n- asset: icons\u002Ffacebook.svg\n- source: upstream_registry\n- review_status: upstream_seeded\n- review_url: https:\u002F\u002Fdevelopers.facebook.com\u002Fdocs\u002Fmarketing-api\u002Fmarketing-api-changelog\n\n## Capabilities\n\n- check=true catalog=true read=true write=true query=false\n- Integration type: api\n\n## Authentication\n\n- Use pm credentials add with --from-env or --value-stdin for secret fields.\n\n## Configuration\n\n- ad_account_id\n- base_url\n- access_token (secret) (required)\n\n## ETL Streams\n\n- ad_accounts:\n  - primary key: id\n  - fields: account_id(string), account_status(string), currency(string), id(string), name(string), timezone_name(string)\n- campaigns:\n  - primary key: id\n  - fields: created_time(string), effective_status(string), id(string), name(string), objective(string), status(string), updated_time(string)\n- ads:\n  - primary key: id\n  - fields: created_time(string), effective_status(string), id(string), name(string), status(string), updated_time(string)\n- ad_sets:\n  - primary key: id\n  - fields: bid_amount(integer), billing_event(string), campaign_id(string), created_time(string), daily_budget(string), effective_status(string), end_time(string), id(string), lifetime_budget(string), name(string), optimization_goal(string), start_time(string), status(string), updated_time(string)\n- ad_creatives:\n  - primary key: id\n  - fields: id(string), name(string), object_story_id(string), object_type(string), status(string), thumbnail_url(string)\n- custom_audiences:\n  - primary key: id\n  - fields: approximate_count_lower_bound(integer), approximate_count_upper_bound(integer), description(string), id(string), name(string), operation_status(object), subtype(string), time_created(string), time_updated(string)\n- insights:\n  - primary key: id\n  - fields: ad_id(string), ad_name(string), adset_id(string), adset_name(string), campaign_id(string), campaign_name(string), clicks(string), cpc(string), cpm(string), ctr(string), date_start(string), date_stop(string), frequency(string), id(string), impressions(string), reach(string), spend(string)\n\n## Sync Modes\n\n- ETL sync modes: full_refresh_append, full_refresh_overwrite\n\n## Reverse ETL Actions\n\n- create_campaign:\n  - endpoint: POST \u002F{{ config.ad_account_id }}\u002Fcampaigns\n  - required fields: name, objective, status, special_ad_categories\n  - risk: external mutation on a live Facebook ad account; creates a campaign that can incur ad spend once ads are attached; approval required\n- update_campaign:\n  - endpoint: POST \u002F{{ record.id }}\n  - required fields: id\n  - risk: external mutation on a live Facebook ad account (e.g. pausing\u002Fresuming spend); approval required\n- create_ad_set:\n  - endpoint: POST \u002F{{ config.ad_account_id }}\u002Fadsets\n  - required fields: name, campaign_id, billing_event, optimization_goal, targeting, status\n  - risk: external mutation on a live Facebook ad account; creates an ad set that can incur ad spend once ads are attached; approval required\n\n## Security\n\n- read risk: external Facebook Graph API read of ad account, campaign, ad, ad set, ad creative, custom audience, and insights (performance metrics) data\n- write risk: external mutation of a live Facebook ad account; creating\u002Fupdating campaigns and ad sets can incur real ad spend once ads are attached and the campaign\u002Fad set is active\n- approval: writes require approval; reads are unrestricted\n- Never pass secret values in chat, shell arguments, logs, docs, or JSON output.\n\n## Commands\n\n### Inspect as a manual\n\n```bash\npm connectors inspect facebook-marketing\n```\n\n### Inspect as structured JSON\n\n```bash\npm connectors inspect facebook-marketing --json\n```\n\n## Agent Rules\n\n- Run pm connectors inspect facebook-marketing before creating credentials or plans.\n- Use --json only when the caller needs structured output; use the manual for human-readable guidance.\n- Never ask the user to paste secret values into chat.\n- For reverse ETL writes, create a plan, show the preview, wait for explicit approval, then run with the approval token.\n","# pm-facebook-marketing\n\n## Purpose\n\nReads Facebook Marketing ad accounts, campaigns, ads, ad sets, ad creatives, custom audiences, and performance insights, and creates\u002Fupdates campaigns and ad sets, through the Graph API.\n\n## Icon\n\n- id: facebook\n- asset: icons\u002Ffacebook.svg\n- source: upstream_registry\n- review_status: upstream_seeded\n- review_url: https:\u002F\u002Fdevelopers.facebook.com\u002Fdocs\u002Fmarketing-api\u002Fmarketing-api-changelog\n\n## Capabilities\n\n- check=true catalog=true read=true write=true query=false\n- Integration type: api\n\n## Authentication\n\n- Use pm credentials add with --from-env or --value-stdin for secret fields.\n\n## Configuration\n\n- ad_account_id\n- base_url\n- access_token (secret) (required)\n\n## ETL Streams\n\n- ad_accounts:\n  - primary key: id\n  - fields: account_id(string), account_status(string), currency(string), id(string), name(string), timezone_name(string)\n- campaigns:\n  - primary key: id\n  - fields: created_time(string), effective_status(string), id(string), name(string), objective(string), status(string), updated_time(string)\n- ads:\n  - primary key: id\n  - fields: created_time(string), effective_status(string), id(string), name(string), status(string), updated_time(string)\n- ad_sets:\n  - primary key: id\n  - fields: bid_amount(integer), billing_event(string), campaign_id(string), created_time(string), daily_budget(string), effective_status(string), end_time(string), id(string), lifetime_budget(string), name(string), optimization_goal(string), start_time(string), status(string), updated_time(string)\n- ad_creatives:\n  - primary key: id\n  - fields: id(string), name(string), object_story_id(string), object_type(string), status(string), thumbnail_url(string)\n- custom_audiences:\n  - primary key: id\n  - fields: approximate_count_lower_bound(integer), approximate_count_upper_bound(integer), description(string), id(string), name(string), operation_status(object), subtype(string), time_created(string), time_updated(string)\n- insights:\n  - primary key: id\n  - fields: ad_id(string), ad_name(string), adset_id(string), adset_name(string), campaign_id(string), campaign_name(string), clicks(string), cpc(string), cpm(string), ctr(string), date_start(string), date_stop(string), frequency(string), id(string), impressions(string), reach(string), spend(string)\n\n## Sync Modes\n\n- ETL sync modes: full_refresh_append, full_refresh_overwrite\n\n## Reverse ETL Actions\n\n- create_campaign:\n  - endpoint: POST \u002F{{ config.ad_account_id }}\u002Fcampaigns\n  - required fields: name, objective, status, special_ad_categories\n  - risk: external mutation on a live Facebook ad account; creates a campaign that can incur ad spend once ads are attached; approval required\n- update_campaign:\n  - endpoint: POST \u002F{{ record.id }}\n  - required fields: id\n  - risk: external mutation on a live Facebook ad account (e.g. pausing\u002Fresuming spend); approval required\n- create_ad_set:\n  - endpoint: POST \u002F{{ config.ad_account_id }}\u002Fadsets\n  - required fields: name, campaign_id, billing_event, optimization_goal, targeting, status\n  - risk: external mutation on a live Facebook ad account; creates an ad set that can incur ad spend once ads are attached; approval required\n\n## Security\n\n- read risk: external Facebook Graph API read of ad account, campaign, ad, ad set, ad creative, custom audience, and insights (performance metrics) data\n- write risk: external mutation of a live Facebook ad account; creating\u002Fupdating campaigns and ad sets can incur real ad spend once ads are attached and the campaign\u002Fad set is active\n- approval: writes require approval; reads are unrestricted\n- Never pass secret values in chat, shell arguments, logs, docs, or JSON output.\n\n## Commands\n\n### Inspect as a manual\n\n```bash\npm connectors inspect facebook-marketing\n```\n\n### Inspect as structured JSON\n\n```bash\npm connectors inspect facebook-marketing --json\n```\n\n## Agent Rules\n\n- Run pm connectors inspect facebook-marketing before creating credentials or plans.\n- Use --json only when the caller needs structured output; use the manual for human-readable guidance.\n- Never ask the user to paste secret values into chat.\n- For reverse ETL writes, create a plan, show the preview, wait for explicit approval, then run with the approval token.\n",{"name":5,"description":7},"main","813f457a925f7ee3fe3bea101a43e445992c8552","docs\u002Fskills\u002Fpm-facebook-marketing",0,"https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli","https:\u002F\u002Fcli.polymetrics.ai","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai","Local-first data infrastructure for agents and developers.","2026-09-21 12:42:03",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add polymetrics-ai\u002Fcli --skill pm-facebook-marketing",{"tool":39,"command":40},"bunx","bunx skills add polymetrics-ai\u002Fcli --skill pm-facebook-marketing",{"tool":42,"command":43},"pnpm","pnpm dlx skills add polymetrics-ai\u002Fcli --skill pm-facebook-marketing","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-facebook-marketing\u002FSKILL.md",true,[],[48,55,62,69,76,83],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":19},"01M782EH9BFHYZVECKJ31F427S","recipe-preview-approve-reverse-etl","Preview and approve a reverse ETL plan safely.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Frecipe-preview-approve-reverse-etl\u002FSKILL.md",[],[],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":19},"01M782EFGH5NRZ2CXDK0V9YWFW","recipe-github-prs-to-warehouse","Sync GitHub pull requests into the local warehouse.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Frecipe-github-prs-to-warehouse\u002FSKILL.md",[],[],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":19},"01M782ECJZRQAK8E86CE7R2YM2","pm-zoom","Zoom connector knowledge and safe action guide.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-zoom\u002FSKILL.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M782EASYDANMV35W2ZHG2QD0","pm-zonka-feedback","Zonka Feedback connector knowledge and safe action guide.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-zonka-feedback\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M782E8WA94A906385AET1ZWH","pm-zoho-invoice","Zoho Invoice connector knowledge and safe action guide.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-zoho-invoice\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M782E73M7F23B6VBGM72QMMQ","pm-zoho-inventory","Zoho Inventory connector knowledge and safe action guide.","https:\u002F\u002Fgithub.com\u002Fpolymetrics-ai\u002Fcli\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fpm-zoho-inventory\u002FSKILL.md",[],[]]