Apple Search Ads 管理:API v5 自动化 - Openclaw Skills

作者:互联网

2026-03-30

AI教程

什么是 Apple Search Ads 管理?

此技能提供了一个强大的界面,通过 asa-cli 工具与 Apple Search Ads Campaign Management API v5 进行交互。通过利用 Openclaw Skills,开发人员和效果营销人员可以自动化其广告系列的整个生命周期,从初始设置和预算分配到细粒度的关键词优化和出价管理。它旨在处理单组织和多组织帐户,提供一种统一的方式,直接从您的开发环境控制全球广告支出和绩效。

该集成支持以编程方式访问关键广告数据,从而允许创建自定义自动化脚本和数据管道。通过利用 Openclaw Skills,您可以摆脱手动仪表板管理,并为您的移动应用增长实施复杂的、代码驱动的策略。

下载入口:https://github.com/openclaw/skills/tree/main/skills/trebuhs/apple-search-ads-skill

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install apple-search-ads-skill

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 /skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 apple-search-ads-skill。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

Apple Search Ads 管理 应用场景

  • 在特定预算限制和地区定位下,自动化创建多个广告系列和广告组。
  • 在大型帐户中执行批量关键词更新,包括出价调整和状态更改。
  • 提取广告系列、搜索词和关键词的细粒度性能报告,以输入到数据可视化工具中。
  • 在不同的广告组中同步否定关键词列表,以优化广告相关性并减少浪费的支出。
  • 通过在 CLI 中无缝切换组织 ID 来管理复杂的多组织设置。
Apple Search Ads 管理 工作原理
  1. 用户通过提供 Apple Search Ads API 凭据(包括客户端 ID、团队 ID 和私钥)来初始化技能。
  2. 系统使用 Apple Search Ads API v5 进行身份验证,并使用 whoami 命令识别可用的组织。
  3. 用户执行针对广告系列、广告组或关键词的特定管理命令,可以选择使用过滤器来定位特定资源。
  4. 对于报告任务,该技能根据定义的开始和结束日期请求数据,汇总诸如 totalInstalls 和 avgCPM 等指标。
  5. 所有结果均可以 JSON 格式输出,以便进一步处理并与其他 Openclaw Skills 或外部自动化脚本集成。

Apple Search Ads 管理 配置指南

要开始使用此技能,您需要配置您的 Apple Search Ads API 凭据。使用以下命令设置您的环境:

# 交互式配置您的 API 凭据
asa-cli configure

# 或使用标志进行自动化配置
asa-cli configure --client-id "YOUR_CLIENT_ID" --team-id "YOUR_TEAM_ID" --key-id "YOUR_KEY_ID" --private-key-path "/path/to/key.p8"

# 验证配置并列出可访问的组织
asa-cli whoami -o json

Apple Search Ads 管理 数据架构与分类体系

该技能与 Apple Search Ads v5 数据模型交互。使用 Openclaw Skills 进行数据提取时,适用以下架构:

实体 关键属性
广告系列 id, name, budget, dailyBudget, status, countries, appId
广告组 id, campaignId, name, defaultBid, cpaGoal, startTime, autoKeywords
关键词 id, adgroupId, text, matchType, bid, status
报告 date, totalInstalls, tapInstalls, totalAvgCPI, avgCPM, tapInstallRate
否定关键词 id, text, matchType, campaignId/adgroupId
name: Apple-Search-Ads
description: Manage Apple Search Ads campaigns, ad groups, keywords, and reports via the asa-cli tool. Use when the user asks about Apple Search Ads management, campaign operations, keyword bidding, ASA reports, or ad performance.

Apple Search Ads CLI

Use asa-cli to interact with the Apple Search Ads Campaign Management API v5. Always use -o json when you need to parse results programmatically.

Organizations

Run asa-cli whoami to list available orgs. For multi-org accounts, pass --org-id with every command (except whoami). Single-org accounts auto-detect the org.

Commands

Auth & Config

asa-cli whoami                          # List all orgs (no --org-id needed)
asa-cli configure --client-id "..." --team-id "..." --key-id "..." --private-key-path "..."
asa-cli configure                       # Interactive mode

Campaigns

asa-cli campaigns list [--org-id ] [--limit N] [--offset N]
asa-cli campaigns get  [--org-id ]
asa-cli campaigns find [--org-id ] [--filter "status=ENABLED"] [--sort "name:asc"] [--limit N] [--all]
asa-cli campaigns create [--org-id ] --name "..." --budget 1000 --daily-budget 50 --countries US,GB --app-id 123456
asa-cli campaigns update  [--org-id ] [--name ...] [--budget ...] [--daily-budget ...] [--status ENABLED|PAUSED]
asa-cli campaigns delete  [--org-id ]

Ad Groups (require --campaign-id)

asa-cli adgroups list --campaign-id  [--org-id ]
asa-cli adgroups get  --campaign-id  [--org-id ]
asa-cli adgroups find --campaign-id  [--org-id ] [--filter "status=ENABLED"]
asa-cli adgroups create --campaign-id  [--org-id ] --name "..." --default-bid 1.50 --start-time "2026-01-01T00:00:00.000" [--cpa-goal 5.00] [--auto-keywords true|false]
asa-cli adgroups update  --campaign-id  [--org-id ] [--name ...] [--default-bid ...] [--status ...]
asa-cli adgroups delete  --campaign-id  [--org-id ]

Keywords (require --campaign-id --adgroup-id)

asa-cli keywords list --campaign-id  --adgroup-id  [--org-id ]
asa-cli keywords get  --campaign-id  --adgroup-id  [--org-id ]
asa-cli keywords find --campaign-id  --adgroup-id  [--org-id ] [--filter "text~brand"]
asa-cli keywords create --campaign-id  --adgroup-id  [--org-id ] --text "keyword" [--text "another"] --match-type BROAD|EXACT [--bid 1.50]
asa-cli keywords update --campaign-id  --adgroup-id  [--org-id ] --id  [--status ACTIVE|PAUSED] [--bid 2.00]
asa-cli keywords delete  --campaign-id  --adgroup-id  [--org-id ]

Negative Keywords

# Campaign-level
asa-cli negative-keywords campaign-list --campaign-id  [--org-id ]
asa-cli negative-keywords campaign-find --campaign-id  [--org-id ] [--filter "text~free"]
asa-cli negative-keywords campaign-create --campaign-id  [--org-id ] --text "term" [--text "another"] --match-type EXACT|BROAD
asa-cli negative-keywords campaign-delete  --campaign-id  [--org-id ]

# Ad group-level
asa-cli negative-keywords adgroup-list --campaign-id  --adgroup-id  [--org-id ]
asa-cli negative-keywords adgroup-find --campaign-id  --adgroup-id  [--org-id ] [--filter "text~competitor"]
asa-cli negative-keywords adgroup-create --campaign-id  --adgroup-id  [--org-id ] --text "term" [--text "another"] --match-type EXACT|BROAD
asa-cli negative-keywords adgroup-delete  --campaign-id  --adgroup-id  [--org-id ]

Reports

asa-cli reports campaigns [--org-id ] --start-date 2024-01-01 --end-date 2024-01-31 [--granularity DAILY|WEEKLY|MONTHLY] [--group-by countryOrRegion,deviceClass]
asa-cli reports adgroups --campaign-id  [--org-id ] --start-date ... --end-date ...
asa-cli reports keywords --campaign-id  [--org-id ] --start-date ... --end-date ...
asa-cli reports search-terms --campaign-id  [--org-id ] --start-date ... --end-date ...

Utilities

asa-cli apps search --query "MyApp" [--owned]
asa-cli geo search --query "US" [--entity ...] [--country-code ...]

Filter Syntax

Operators for --filter: = EQUALS, ~ CONTAINS, @ IN (comma-sep), > GT, < LT, >= GTE, <= LTE, !~ NOT_CONTAINS.

Example: --filter "status=ENABLED" --filter "name~Brand"

Global Flags

Flag Short Description
--output -o json or table (default: table)
--org-id Organization ID — required for multi-org accounts, auto-detected for single-org
--profile -p Named config profile
--verbose -v Show HTTP request/response details
--no-color Disable colored output

Config

  • Config stored at ~/.asa-cli/config.yaml, token cache at ~/.asa-cli/token_cache.json
  • Profiles: asa-cli configure -p production --client-id "..." ..., then asa-cli campaigns list -p production
  • Env var overrides: ASA_CLIENT_ID, ASA_TEAM_ID, ASA_KEY_ID, ASA_ORG_ID, ASA_PRIVATE_KEY_PATH

Guidelines

  • Always use -o json and pipe through jq when extracting specific fields
  • For multi-org accounts, always include --org-id — run asa-cli whoami -o json to discover org IDs
  • Fetch campaign/adgroup IDs first before operating on child resources
  • Use --all on find commands to auto-paginate large result sets
  • Reports require --start-date and --end-date in YYYY-MM-DD format
  • Currency is auto-detected from the org — no need to specify it manually
  • Ad group create requires --start-time (ISO 8601 format, e.g. "$(date -u +%Y-%m-%dT%H:%M:%S.000)" for now)
  • --auto-keywords defaults to false (search match OFF). Only enable explicitly when creating discovery ad groups
  • keywords find may return 404 on paused/deleted campaigns — use keywords list as a fallback
  • Default pagination limit is 20. Use --limit 50 (or higher) when expecting more results (e.g. negative keywords)
  • Report metrics use v5 field names: totalInstalls, tapInstalls, viewInstalls, totalNewDownloads, totalRedownloads, totalInstallRate, tapInstallRate, totalAvgCPI, tapInstallCPI, avgCPM — not the old v4 names
  • Use --grand-totals on campaign reports to get aggregated totals across all campaigns