{"_id":"@bustly/skill-runtime-ads-core-ops","name":"@bustly/skill-runtime-ads-core-ops","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bustly/skill-runtime-ads-core-ops","version":"0.1.0","description":"Bustly Ads Core Ops Runtime - Unified advertising operations for Klaviyo, Google Ads, and Meta Ads","type":"module","main":"scripts/run.js","bin":{"bustly-skill-ads":"scripts/run.js"},"scripts":{"start":"node scripts/run.js","klaviyo":"node scripts/run.js klaviyo","google-ads":"node scripts/run.js google-ads","meta-ads":"node scripts/run.js meta-ads"},"keywords":["klaviyo","google-ads","meta-ads","advertising","marketing"],"author":{"name":"Bustly"},"license":"MIT","engines":{"node":">=18.0.0"},"_id":"@bustly/skill-runtime-ads-core-ops@0.1.0","gitHead":"6cdcd31a1c41d7dc6bd3597442c85ce1764bc60a","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-/ydB5k6UM5dRVBFb2lRBr404zPb6082KA1cnq7PNOc1EB+hL22XGznOK5ZEioHBgGQBIOVQDuqXyISEivzyfFQ==","shasum":"cfefb8cae49cf65569de584db7fa721bfab2e3c3","tarball":"https://registry.npmjs.org/@bustly/skill-runtime-ads-core-ops/-/skill-runtime-ads-core-ops-0.1.0.tgz","fileCount":8,"unpackedSize":58695,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCe4dIH5LUbS2p0c7y/LXlQhXW39+AfeAa6tCi1TPUEJAIgdHUdn0EEEVPhTdyNNCMPPxFkb1uaC6wkXeDTsm35HxQ="}]},"_npmUser":{"name":"jerry-hu","email":"1001jerryhu@gmail.com"},"directories":{},"maintainers":[{"name":"jerry-hu","email":"1001jerryhu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/skill-runtime-ads-core-ops_0.1.0_1773917309864_0.5265151408748323"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-19T10:48:29.804Z","0.1.0":"2026-03-19T10:48:29.999Z","modified":"2026-03-19T10:48:30.214Z"},"maintainers":[{"name":"jerry-hu","email":"1001jerryhu@gmail.com"}],"description":"Bustly Ads Core Ops Runtime - Unified advertising operations for Klaviyo, Google Ads, and Meta Ads","keywords":["klaviyo","google-ads","meta-ads","advertising","marketing"],"author":{"name":"Bustly"},"license":"MIT","readme":"# Ads Core Ops\n\nUnified advertising operations for Klaviyo, Google Ads, and Meta Ads.\n\n- **Klaviyo** → Gateway Mode\n- **Google Ads** → Gateway Mode\n- **Meta Ads** → Direct Mode\n\n## Standard command surface\n\nPreferred command contract:\n\n```bash\nbustly ops ads <command>\n```\n\nRepo-local fallback:\n\n```bash\nnode scripts/bustly-ops.js ops ads <command>\n```\n\nDirect implementation fallback:\n\n```bash\nnode skills/ops/ads_core_ops/scripts/run.js <command>\n```\n\n## Quick Start\n\n### Discovery\n\n```bash\nbustly ops ads help\nbustly ops ads platforms\nbustly ops ads status\n```\n\n### Gateway Mode\n\n```bash\n# Klaviyo list APIs\nbustly ops ads klaviyo profiles\nbustly ops ads klaviyo campaigns --limit 20\n\n# Klaviyo passthrough\nbustly ops ads klaviyo raw --path /profiles --query '{\"page[size]\":20}'\n\n# Google Ads preset reads\nbustly ops ads google-ads customers\nbustly ops ads google-ads campaigns --customer-id 1234567890\n\n# Google Ads custom GAQL\nbustly ops ads google-ads search \\\n  --customer-id 1234567890 \\\n  --query \"SELECT campaign.id, campaign.name FROM campaign LIMIT 10\"\n\n# Google Ads passthrough\nbustly ops ads google-ads raw \\\n  --path /customers/1234567890/googleAds:search \\\n  --body '{\"query\":\"SELECT campaign.id, campaign.name FROM campaign LIMIT 10\"}'\n```\n\n### Direct Mode (Meta Ads)\n\n```bash\n# Configure credentials\nbustly ops ads config set-meta-ads '{\"accessToken\":\"xxx\",\"adAccountId\":\"123456789\"}'\n\n# Run commands\nbustly ops ads meta-ads campaigns\nbustly ops ads meta-ads insights --date-preset last_7d\n```\n\n## Supported Platforms\n\n| Platform | Mode | Commands |\n|----------|------|----------|\n| Klaviyo | Gateway | profiles, lists, segments, campaigns, flows, metrics, events, templates, raw |\n| Google Ads | Gateway | customers, campaigns, ad-groups, keywords, ads, search, raw |\n| Meta Ads | Direct | account, campaigns, adsets, ads, insights |\n\n## Status Checks\n\n```bash\nbustly ops ads status\n```\n\nThe `status` command now uses the Gateway for Klaviyo and Google Ads, so it reflects the real workspace integration state instead of only checking the local auth file.\n\nPossible gateway statuses:\n- `ready`\n- `not_authorized`\n- `not_connected`\n- `unknown`\n\nPossible direct statuses:\n- `ready`\n- `not_configured`\n- `incomplete`\n\n## Notes\n\n- `raw` / `native` commands are for agent-driven passthrough requests.\n- Gateway mode does **not** expose provider credentials back to the CLI.\n- Meta Ads remains direct for now.\n","readmeFilename":"README.md","_rev":"1-bf7e492af255ac6874828899275993b8"}