campaign-audit について
ブランドの各マーケティングチャネルを読み取り専用で調査・評価し、稼働中のキャンペーン、実績、予算の無駄、コンプライアンス上のリスクを報告するスキルです。対象チャネルや簡易インベントリを指定でき、個別コネクターの失敗後も監査を続行します。
主な機能
- 01複数チャネルの稼働状況を一覧化
- 02実績、予算の無駄、リスクを評価
- 03対象チャネルや簡易調査を指定
- 04失敗したコネクターをスキップして続行
- 05Markdown レポートと JSON 要約を生成
活用シーン
- 01顧客の新規担当時に現状基準を作成
- 02四半期更新前にチャネルを点検
- 03買収や組織変更後に施策を整理
- 04計測障害やコンプライアンスリスクを確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ indranilbanerjee/ digital-marketing-pro --skill campaign-auditインストール後、Claude Code で/campaign-auditを入力して読み込まれたか確認します。
詳細
/digital-marketing-pro:campaign-audit — チャネル横断の現状監査
スクリプトの場所。 ホストで
${CLAUDE_PLUGIN_ROOT}が設定されていない場合、スクリプトはこのプラグインのskills/と同じ階層にあるscripts/フォルダー内にあります。Python 3.10 以降で実行してください。pythonを使用するか、pythonが見つからない場合(macOS、多くの Linux システム)はpython3を使用します。
このスキルは、ブランドのあらゆるチャネルで現在実施されているすべての施策を記述した単一のドキュメントを作成します。稼働中の施策、予算を消化している施策、成果を上げている施策、予算を無駄にしている施策、ひそかに機能していない施策を記録します。これは、十分な情報に基づく /digital-marketing-pro:campaign-plan、/digital-marketing-pro:performance-report、または /digital-marketing-pro:competitor-analysis の更新に先立って実施する必須の手順です。
コンテキストの効率化
負荷の高いスキルです。参照するファイルは、まず Grep を使ってから Read し、一致した範囲のみを offset と limit で指定して読み込んでください。ファイルを開く前に、ブランドのデータディレクトリ(~/.claude-marketing/brands/{slug}/、または環境変数が設定されている場合は $CLAUDE_PLUGIN_DATA/digital-marketing-pro/brands/{slug}/)を一覧表示してください。セッション中に再実行する場合、すでにコンテキストに含まれているファイルは読み飛ばしてください。
このスキルは、次のような場合に使用します。
- 代理店のオンボーディング中(代理店運営ワークフローのステップ 8) — 新規クライアントを引き継いでから最初の 1 週間以内に、何か新しい提案をする前に実施します。
- 四半期ごとのキャンペーン更新の前 — 見直しの基準となる現状を確認します。
- ブランドの買収または組織再編の後 — マーケティングの所有権が移り、新しいチームが「実際には何を運用しているのか」を把握するための単一の信頼できる情報源を必要としている場合に実施します。
- アカウント業務の長期中断後(休暇、育児休業、契約の空白期間) — 変更を加えずに状況を再確認するために実施します。
このスキルが必要な理由
代理店がブランドを引き継ぐと、以前の担当者が残した「キャンペーン計画」は、通常、タブが 40 個ある Google Sheets、3 つのプラットフォームにまたがる 6 つのダッシュボード、そして誰が設定したのか誰も覚えていない API 連携の一覧です。明示的な監査を行わなければ、新しいチームは立ち上がりの間、(a)施策をそのまま稼働させてミスまで引き継ぐか、(b)すべてを停止して再構築し、実際に機能していた施策についての組織的な知識を失うことになります。
このスキルは、そのどちらでもない 3 つ目の選択肢を提供します。稼働中の状態を明確に記録し、各項目を評価して、次の計画策定の話し合いに直接活用できる単一の監査ドキュメントを作成します。これは読み取り専用であり、キャンペーンを一時停止、変更、終了することはありません。
監査対象
| チャネル | 棚卸し対象 | 評価対象 |
|---|---|---|
| 有料検索 | 有効な Google Ads/Microsoft Ads のキャンペーン、広告グループ、キーワード、1 日あたりの予算、最終更新日 | 広告費の効率、品質スコア、コンバージョントラッキングの状態、除外キーワードの網羅性、費用が発生し続けている未使用の広告グループ |
| 有料ソーシャル | 有効な Meta/LinkedIn/TikTok/Pinterest/X のキャンペーン、オーディエンス、クリエイティブ | フリークエンシー、学習フェーズの状態、クリエイティブの疲弊、オーディエンスの重複、アトリビューション期間の適切さ |
| リテールメディア | Amazon Ads、Walmart Connect、Instacart Ads のアカウントとキャンペーン | ACOS、ブランドキーワードと非ブランドキーワードの内訳、上位 SKU のシェア・オブ・ボイス |
| メール | 有効な自動化/ジャーニー(Klaviyo、HubSpot、ActiveCampaign、Brevo、Marketo)、配信リスト、配信到達率指標 | 開封率、送信者の評判、リストの最終確認時期、各リストの GDPR/DPDPA 同意取得の出所、壊れたテンプレート |
| オーガニックソーシャル | プラットフォームごとの投稿頻度(過去 90 日間)、エンゲージメント率、フォロワー数の推移 | 投稿頻度の一貫性、AI 開示への準拠、ロケールの網羅性 |
| コンテンツ/SEO | 過去 90 日間に公開されたページ、ランキング対象キーワード(上位 50 件)、スキーママークアップの状態、内部リンク密度 | インデックス登録の状態(GSC)、Core Web Vitals、AI 概要の引用率、技術的負債の項目 |
| AEO/GEO | Google AI Mode、Perplexity、ChatGPT 検索、Claude 検索、Copilot、Gemini App におけるブランド言及率 | 上位 5 社の競合と比べた言及率、引用シェア、推奨シェア |
| CRM +自動化 | HubSpot/Salesforce/Pipedream/Zapier/Make の稼働中のワークフロー、使用中のセグメント、ライフサイクルステージのマッピング | 孤立したワークフロー(最近実行されていないもの)、壊れたコネクタ、連絡先の重複率 |
| ウェブ解析 | どのドメインに接続されているかを含む GA4 プロパティと GSC プロパティ、設定済みのコンバージョンイベント、同意モードの状態 | タグ発火の状態、イベント名の一貫性、選択されているアトリビューションモデル |
| インフルエンサー/PR | 進行中のクリエイター契約(公開中+一時停止中)、契約済みの納品物、FTC 開示への準拠 | エンゲージメント単価、クリエイターのオーディエンスの真正性チェック、開示の完全性 |
| コンプライアンス状況 | 有効なブランドレベルの主張、AI 生成コンテンツにおける EU AI Act Article 50 の開示状況、C2PA 署名の状態、Cookie/同意バナーのバージョン | 規制対象の各主張と一次情報源の対応付け。開示漏れはエスカレーション |
監査では、本来行われるべきなのに行われていないことも記録します。活動がないチャネル、トラッキングピクセルの欠落、期限切れの API トークン、放棄された自動化などです。
プロセス
ステップ 0 — 前提条件
このスキルを実行するには、次の条件を満たしている必要があります。
- ブランドプロファイルが存在し、
/digital-marketing-pro:validate-profile --brand {brand}の結果がpassedまたはpassed_with_warningsであること。結果がblockedの場合は実行を拒否し、まずブロッカーを解消するようユーザーに伝えます。壊れたプロファイルを使って監査すると、基準値が破損するためです。 - 対象チャネルのコネクタ認証情報が設定されていること(Google Ads、Meta Business、LinkedIn Campaign Manager、メールプラットフォーム、CRM、GA4、GSC など)。コネクタが不足していても監査は正常に続行され、ブロックされません。ただし、該当セクションに「{channel} はスキップ — コネクタ未設定」と記録されます。
ステップ 1 — アクティブなブランドと監査範囲を確認する
--brand <slug> が指定されている場合は、そのブランドを使用します。指定されていない場合はアクティブなブランドを使用します。どちらも設定されていない場合は、次のエラーを表示します。"--brand <slug> required, or run /digital-marketing-pro:switch-brand first."
--channels <list> が指定されている場合(例:paid_search,email,seo)、対象をそのチャネルに限定します。指定されていない場合は、コネクタが設定されているすべてのチャネルを監査します。
--quick が指定されている場合は、チャネルレベルの棚卸しのみ実行します(過去の実績データの取得と AEO/GEO のチェックは省略します)。「現在何が稼働しているか」をすばやく把握するのに便利です。
Step 2 — 各チャネルのインベントリを作成する
対象となる各チャネルについて、関連するデータ取得スクリプトを --read-only を付けて実行します。例:
# Paid search
python "${CLAUDE_PLUGIN_ROOT}/scripts/performance-monitor.py" --brand "{brand}" \
--channel google_ads --action inventory --read-only
# Paid social
python "${CLAUDE_PLUGIN_ROOT}/scripts/performance-monitor.py" --brand "{brand}" \
--channel meta_ads --action inventory --read-only
python "${CLAUDE_PLUGIN_ROOT}/scripts/performance-monitor.py" --brand "{brand}" \
--channel linkedin_ads --action inventory --read-only
# Email
python "${CLAUDE_PLUGIN_ROOT}/scripts/performance-monitor.py" --brand "{brand}" \
--channel email --action automations --read-only
# Organic + SEO
python "${CLAUDE_PLUGIN_ROOT}/scripts/seo-executor.py" --brand "{brand}" --action audit-current
python "${CLAUDE_PLUGIN_ROOT}/scripts/performance-monitor.py" --brand "{brand}" \
--channel organic_social --action cadence
# AEO / GEO (skip for a fast audit)
python "${CLAUDE_PLUGIN_ROOT}/scripts/ai-visibility-checker.py" --brand "{brand}" \
--mode api --competitors "{auto-from-profile or --competitors arg}"
# CRM + automation health
python "${CLAUDE_PLUGIN_ROOT}/scripts/crm-sync.py" --brand "{brand}" --action audit-workflows
# Web analytics health
python "${CLAUDE_PLUGIN_ROOT}/scripts/performance-monitor.py" --brand "{brand}" \
--channel ga4_health --action diagnostic
スクリプトがインベントリではなく {"error": "..."} を返した場合、そのチャネルを skipped: <reason> として記録し、続行します。1つのチャネルに問題があっても、監査全体を失敗させてはいけません。問題のあるチャネル自体が検出事項です。
Step 3 — スコアを付け、優先順位を決める
見つかった各項目に、スコアリング基準(4段階、保守的)を適用します。
| Tier | 意味 | 例 |
|---|---|---|
| 🟢 健全 | ベンチマークの範囲内で機能しており、対応不要です | 開封率が25%を超えるメール自動化;QSが7以上のGoogle Adsキャンペーン;主要キーワードで検索結果のトップ10に入るSEOページ |
| 🟡 すぐにできる改善 | 小さな修正で意味のある成果が得られます(作業時間2時間未満) | サイトリンク表示オプションがない広告コピー;差し込みタグが壊れているメールテンプレート;スキーママークアップがないランディングページ |
| 🟠 戦略的な課題 | 本格的な対応(ワークショップ、アセット、意思決定)が必要です | 有効なリターゲティングオーディエンスがない;除外キーワードリストがない;AI生成コンテンツにAEO開示がない |
| 🔴 重大な問題/損失 | 金銭を実際に失っている、またはコンプライアンスリスクが発生しています | コンバージョントラッキングが壊れたまま費用を使っているキャンペーン;GDPR上の取得経緯が不明なメールリスト;重複連絡先に対して実行されるCRMワークフロー |
次のいずれかに該当するものは、重大な問題です:(a)月あたりの測定可能な無駄が $X を超える(デフォルトは $500。--red-flag-spend-threshold で上書きできます)、(b)規制違反(同意の欠如、AI開示の欠如、虚偽の主張)、(c)ブランドセーフティ上のリスク(販売終了製品のキャンペーンが稼働中、別の有効なキャンペーンとの矛盾)。
Step 4 — 監査ドキュメントを作成する
監査結果を ~/.claude-marketing/brands/{slug}/audits/campaign-audit-{YYYY-MM-DD}.md に書き込み、ユーザーが参照できるコピーを ~/Documents/DigitalMarketingPro/{brand}/audits/{YYYY-MM-DD}-campaign-audit.md にも公開します(デュアルコピー方式)。ドキュメントの構成:
# Current-State Campaign Audit — {brand_name}
**Run date:** {YYYY-MM-DD}
**Auditor:** /digital-marketing-pro:campaign-audit
**Active brand profile:** {profile_version_or_last_modified}
**Channels in scope:** {list}
**Channels skipped:** {list with reason}
---
## 1. Executive Summary
- **{N} active campaigns** across {M} channels
- **Estimated monthly spend (managed):** {currency} {amount}
- **Healthy items:** {count} · **Quick wins:** {count} · **Strategic gaps:** {count} · **🔴 Red flags:** {count}
- **Top three red flags** — bulleted, with the specific cost or risk
- **Recommended next conversation** — usually one of: budget reallocation, conversion-tracking fix, compliance remediation, channel-mix shift
## 2. By channel
### 2.1 Paid search
| Account | Campaign | Status | Daily budget | Last modified | Spend (30d) | Conversions (30d) | Triage |
|---|---|---|---|---|---|---|---|
| ... | ... | ACTIVE | $X | YYYY-MM-DD | $Y | N | 🟡 Add sitelink extensions |
[Repeat for each channel section. Include the inventory table, the scoring summary, and the per-item triage.]
## 3. Cross-channel observations
- Attribution model in use (and which channels override it)
- Cross-channel audience overlap (Meta retargeting includes Google Ads converters?)
- Cadence collisions (email send + LinkedIn organic + paid social all hitting the same audience the same morning?)
- Funnel gaps (channel produces leads but no nurture sequence wired up)
## 4. Compliance posture
- EU AI Act Article 50 disclosure state on AI content
- C2PA signing state for AI images/video distributed in EU markets
- Consent-mode (cookie banner) version + last consent rate
- Regulated-industry claim register (linked to primary sources)
## 5. AEO / GEO snapshot
Mention rate vs top 5 competitors across Google AI Mode, Perplexity, ChatGPT search, Claude search, Copilot, Gemini App. Citation share, recommendation share, trend vs last audit.
## 6. Quick-wins backlog (do these this week)
Bulleted list. Each item: action · channel · effort · expected impact · who owns it.
## 7. Strategic gaps (queue for next planning conversation)
Bulleted list. Each item: gap · why it matters · what would close it · estimated investment.
## 8. 🔴 Red flags (escalate before continuing routine work)
Bulleted list. Each item: the specific issue · cost or risk in concrete numbers · the literal command or platform action to remediate.
## 9. Channels NOT running that probably should be
Bulleted list. Each item: channel · why it's missing · what minimum viable activation looks like.
---
**Next steps:**
- Take the quick-wins backlog into a 30-min triage with the account lead.
- Bring the strategic gaps to the next `/digital-marketing-pro:campaign-plan` conversation.
- Resolve every 🔴 red flag before the next routine work cycle.
Step 5 — ブランドの監査履歴を更新する
~/.claude-marketing/brands/{slug}/audit-history.json に短いエントリを追加します。
{
"audits": [
{
"type": "campaign-audit",
"date": "{YYYY-MM-DD}",
"channels_audited": ["paid_search", "email", "seo", "..."],
"channels_skipped": [{"channel": "linkedin_ads", "reason": "connector_unauthenticated"}],
"healthy_count": N, "quickwin_count": N, "gap_count": N, "redflag_count": N,
"report_path": "{tracking_path}",
"published_path": "{user_visible_path}"
}
]
}
Step 6 — レポートをユーザーに提示する
会話内に次を出力します。
✅ Campaign audit complete for {brand_name}.
Channels in scope: {list}
{N} healthy · {N} quick wins · {N} strategic gaps · {N} 🔴 red flags
📂 Report saved to:
{published_path}
Top 3 red flags:
1. {item}
2. {item}
3. {item}
Next: walk the quick-wins backlog in a 30-min triage, or run
/digital-marketing-pro:performance-check for a metrics-only snapshot,
or /digital-marketing-pro:campaign-plan to start the next planning cycle.
動作ルール
- すべてのチャネルで読み取り専用にします。 キャンペーンの一時停止、編集、削除は行いません。メールは送信しません。CRMレコードには触れません。これはインベントリ作成とスコアリングの処理です。
- 1つのチャネルの障害は、監査全体の失敗を意味しません。 失敗したコネクターはスキル全体を中断する例外ではなく、「スキップしたチャネル」リストの検出事項として記録します。
- 形容詞ではなく、具体的な数値を使います。 「非効率に支出しています」より「月あたり $X を無駄にしています」のほうが適切です。数値が取得できない場合は、捏造せず「不明 — {connector} から返されませんでした」と記載します。
- コンプライアンスに関する検出事項には一次情報源を引用します。 「X規制はYを義務付けている」の根拠として、Wikipedia、ブログ記事、LLMの出力を引用してはいけません。
skills/context-engine/compliance-rules.mdの記載を使用します。管轄区域がそこに含まれていない場合は、推測せず、検出事項をcompliance_basis: unverifiedとして記録します。 - レポートを2か所に保存します。 内部用(追跡用)は
~/.claude-marketing/brands/{slug}/audits/に、ユーザー向けは~/Documents/DigitalMarketingPro/{brand}/audits/(または設定されている場合は$DIGITAL_MARKETING_PRO_PUBLISH_DIR)に保存します。ユーザーがドットフォルダーの中を探し回らなくてもファイルを見つけられるよう、デュアルコピー方式を採用しています。
引数
/digital-marketing-pro:campaign-audit [--brand <slug>] [--channels <list>] [--quick]
[--competitors <list>] [--red-flag-spend-threshold <amount>] [--json]
--brand <slug>— 監査するブランド(指定しない場合はアクティブなブランドを使用します)--channels <list>— 監査対象とするチャネルをカンマ区切りで指定します(指定しない場合は、コネクターが設定されているすべてのチャネルが対象です)--quick— チャネルのインベントリ作成のみを実行し、過去データの取得とAEO/GEOチェックをスキップします--competitors <list>— AEO/GEOセクションで使用する競合リストを明示的に指定します(指定しない場合はブランドプロフィールから取得します)--red-flag-spend-threshold <amount>— 損失を🔴としてフラグ付けする際の、デフォルトの月額 $500 のしきい値を上書きします--json— Markdownレポートに加えて、機械可読なJSONサマリーも出力します
関連するスキルとコマンド
validate-profile— 事前確認(最初に実行してください)campaign-plan— 明らかになった戦略上のギャップへの対処launch-campaign— 計画の承認後に行うことperformance-check— 指標に絞った簡易スナップショットcompetitor-analysis— AEO/GEO セクションとの組み合わせに適していますaeo-audit— セクション 5 で懸念が生じた場合に行う、AI エンジンでの可視性に関する詳細な監査"${CLAUDE_PLUGIN_ROOT}/scripts/performance-monitor.py"— 基礎となるデータの取得