siluzan-tso-cli 1.1.12 → 1.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +33 -29
  2. package/dist/index.js +2267 -1440
  3. package/dist/skill/SKILL.md +93 -34
  4. package/dist/skill/_meta.json +2 -2
  5. package/dist/skill/assets/campaign-create-template.json +96 -101
  6. package/dist/skill/references/account-analytics.md +64 -62
  7. package/dist/skill/references/accounts.md +130 -130
  8. package/dist/skill/references/clue.md +13 -13
  9. package/dist/skill/references/finance.md +62 -61
  10. package/dist/skill/references/forewarning.md +40 -39
  11. package/dist/skill/references/google-ads-rules/google-ads-account-audit.md +165 -161
  12. package/dist/skill/references/google-ads-rules/google-ads-audience-strategy.md +94 -85
  13. package/dist/skill/references/google-ads-rules/google-ads-campaign-optimization.md +97 -85
  14. package/dist/skill/references/google-ads-rules/google-ads-compliance.md +274 -272
  15. package/dist/skill/references/google-ads-rules/google-ads-conversion-architecture.md +97 -82
  16. package/dist/skill/references/google-ads-rules/google-ads-creative-optimization.md +143 -139
  17. package/dist/skill/references/google-ads-rules/google-ads-keyword-optimization.md +131 -128
  18. package/dist/skill/references/google-ads-rules/google-ads-keyword-strategy.md +175 -173
  19. package/dist/skill/references/google-ads-rules/google-ads-launch-plan-template.md +126 -123
  20. package/dist/skill/references/google-ads-rules/google-ads-pmax-guide.md +86 -73
  21. package/dist/skill/references/google-ads-rules/sensitive-industries.md +43 -8
  22. package/dist/skill/references/google-ads.md +201 -196
  23. package/dist/skill/references/open-account-by-media.md +23 -23
  24. package/dist/skill/references/open-account-google-ui.md +26 -26
  25. package/dist/skill/references/optimize.md +8 -8
  26. package/dist/skill/references/reporting.md +28 -28
  27. package/dist/skill/references/setup.md +10 -7
  28. package/dist/skill/references/tso-home.md +11 -11
  29. package/dist/skill/references/workflows.md +28 -26
  30. package/dist/skill/report-templates/README.md +22 -21
  31. package/dist/skill/report-templates/REPORT-WORKFLOW.md +9 -9
  32. package/dist/skill/report-templates/bing-period-report.md +11 -11
  33. package/dist/skill/report-templates/google-ads-diagnosis.md +86 -86
  34. package/dist/skill/report-templates/google-period-report.md +23 -23
  35. package/dist/skill/report-templates/report-template-academic.html +433 -341
  36. package/dist/skill/report-templates/report-template-dark.html +440 -257
  37. package/dist/skill/report-templates/report-template-formal.html +438 -288
  38. package/dist/skill/report-templates/report-template-mobile.html +456 -241
  39. package/dist/skill/report-templates/report-template-onepager.html +452 -240
  40. package/dist/skill/report-templates/report-template-print.html +355 -243
  41. package/dist/skill/report-templates/report-template.html +485 -392
  42. package/dist/skill/report-templates/tiktok-period-report.md +10 -10
  43. package/package.json +13 -13
  44. package/scripts/postinstall.mjs +3 -1
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html>
1
+ <!doctype html>
2
2
  <!--
3
3
  风格:正式文件 / 公文式(红头线、居中标题、黑框表格、中文序号「一、二、」、少彩色装饰)
4
4
  与 report-template.html 区块结构、data-section-id 一致,可互换填充数据。
@@ -8,311 +8,461 @@
8
8
  如需离线使用,请将对应资源下载到本地并替换 <script>/<link> 的 src/href。
9
9
  -->
10
10
  <html lang="zh-CN">
11
- <head>
12
- <meta charset="UTF-8">
13
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
14
- <title>广告数据报告 — 正式文件风格版式参考</title>
15
- <script src="https://cdn.tailwindcss.com"></script>
16
- <script>
17
- tailwind.config = {
18
- theme: {
19
- extend: {
20
- fontFamily: {
21
- sans: [
22
- 'PingFang SC', 'Microsoft YaHei', 'SimHei', 'Noto Sans SC', 'Helvetica Neue',
23
- 'Segoe UI', 'Arial', 'sans-serif',
24
- ],
11
+ <head>
12
+ <meta charset="UTF-8" />
13
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
14
+ <title>广告数据报告 — 正式文件风格版式参考</title>
15
+ <script src="https://cdn.tailwindcss.com"></script>
16
+ <script>
17
+ tailwind.config = {
18
+ theme: {
19
+ extend: {
20
+ fontFamily: {
21
+ sans: [
22
+ "PingFang SC",
23
+ "Microsoft YaHei",
24
+ "SimHei",
25
+ "Noto Sans SC",
26
+ "Helvetica Neue",
27
+ "Segoe UI",
28
+ "Arial",
29
+ "sans-serif",
30
+ ],
31
+ },
25
32
  },
26
33
  },
27
- },
28
- };
29
- </script>
30
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" />
31
- <script src="https://cdn.jsdelivr.net/npm/echarts@5.5.1/dist/echarts.min.js"></script>
32
- <style>
33
- @media print {
34
- body { background: #fff !important; }
35
- .no-print { display: none !important; }
36
- }
37
- </style>
38
- </head>
39
- <body class="min-h-screen bg-neutral-300 font-sans text-neutral-900 antialiased">
40
- <!-- 正式稿外层留白,模拟 A4 页边距 -->
41
- <main class="mx-auto my-6 max-w-4xl border-2 border-neutral-900 bg-white px-8 py-10 shadow-md sm:px-12 sm:py-12">
42
- <!-- 红头装饰线(可按单位规范改为双红线或仅黑线) -->
43
- <div class="mb-1 h-1 w-full bg-red-800" aria-hidden="true"></div>
44
- <div class="mb-6 h-px w-full bg-neutral-900" aria-hidden="true"></div>
34
+ };
35
+ </script>
36
+ <link
37
+ rel="stylesheet"
38
+ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
39
+ crossorigin="anonymous"
40
+ referrerpolicy="no-referrer"
41
+ />
42
+ <script src="https://cdn.jsdelivr.net/npm/echarts@5.5.1/dist/echarts.min.js"></script>
43
+ <style>
44
+ @media print {
45
+ body {
46
+ background: #fff !important;
47
+ }
48
+ .no-print {
49
+ display: none !important;
50
+ }
51
+ }
52
+ </style>
53
+ </head>
54
+ <body class="min-h-screen bg-neutral-300 font-sans text-neutral-900 antialiased">
55
+ <!-- 正式稿外层留白,模拟 A4 页边距 -->
56
+ <main
57
+ class="mx-auto my-6 max-w-4xl border-2 border-neutral-900 bg-white px-8 py-10 shadow-md sm:px-12 sm:py-12"
58
+ >
59
+ <!-- 红头装饰线(可按单位规范改为双红线或仅黑线) -->
60
+ <div class="mb-1 h-1 w-full bg-red-800" aria-hidden="true"></div>
61
+ <div class="mb-6 h-px w-full bg-neutral-900" aria-hidden="true"></div>
45
62
 
46
- <header class="mb-8 text-center">
47
- <h1 class="text-2xl font-bold tracking-widest text-neutral-900 sm:text-[1.65rem]">
48
- 关于「数据报告标题」的说明
49
- </h1>
50
- <p class="mt-2 text-sm text-neutral-600">(投放数据分析 · 内部参阅)</p>
51
- </header>
63
+ <header class="mb-8 text-center">
64
+ <h1 class="text-2xl font-bold tracking-widest text-neutral-900 sm:text-[1.65rem]">
65
+ 关于「数据报告标题」的说明
66
+ </h1>
67
+ <p class="mt-2 text-sm text-neutral-600">(投放数据分析 · 内部参阅)</p>
68
+ </header>
52
69
 
53
- <!-- 文头信息表:适用于账户、区间、文号、密级等 -->
54
- <table class="mb-8 w-full border-collapse border-2 border-neutral-900 text-sm" aria-label="报告文头信息">
55
- <tbody>
56
- <tr>
57
- <td class="w-[22%] border border-neutral-900 bg-neutral-50 px-2 py-2 font-semibold text-center">编制单位</td>
58
- <td class="border border-neutral-900 px-3 py-2">Siluzan 投放分析</td>
59
- <td class="w-[18%] border border-neutral-900 bg-neutral-50 px-2 py-2 font-semibold text-center">报告文号</td>
60
- <td class="border border-neutral-900 px-3 py-2 font-mono text-xs">SLZ-ADS-2026-001</td>
61
- </tr>
62
- <tr>
63
- <td class="border border-neutral-900 bg-neutral-50 px-2 py-2 font-semibold text-center">账户名称</td>
64
- <td class="border border-neutral-900 px-3 py-2 font-medium" id="accountName">示例账户</td>
65
- <td class="border border-neutral-900 bg-neutral-50 px-2 py-2 font-semibold text-center">统计区间</td>
66
- <td class="border border-neutral-900 px-3 py-2 tabular-nums" id="reportPeriod">2026-03-01 ~ 2026-03-07</td>
67
- </tr>
68
- </tbody>
69
- </table>
70
+ <!-- 文头信息表:适用于账户、区间、文号、密级等 -->
71
+ <table
72
+ class="mb-8 w-full border-collapse border-2 border-neutral-900 text-sm"
73
+ aria-label="报告文头信息"
74
+ >
75
+ <tbody>
76
+ <tr>
77
+ <td
78
+ class="w-[22%] border border-neutral-900 bg-neutral-50 px-2 py-2 font-semibold text-center"
79
+ >
80
+ 编制单位
81
+ </td>
82
+ <td class="border border-neutral-900 px-3 py-2">Siluzan 投放分析</td>
83
+ <td
84
+ class="w-[18%] border border-neutral-900 bg-neutral-50 px-2 py-2 font-semibold text-center"
85
+ >
86
+ 报告文号
87
+ </td>
88
+ <td class="border border-neutral-900 px-3 py-2 font-mono text-xs">SLZ-ADS-2026-001</td>
89
+ </tr>
90
+ <tr>
91
+ <td class="border border-neutral-900 bg-neutral-50 px-2 py-2 font-semibold text-center">
92
+ 账户名称
93
+ </td>
94
+ <td class="border border-neutral-900 px-3 py-2 font-medium" id="accountName">
95
+ 示例账户
96
+ </td>
97
+ <td class="border border-neutral-900 bg-neutral-50 px-2 py-2 font-semibold text-center">
98
+ 统计区间
99
+ </td>
100
+ <td class="border border-neutral-900 px-3 py-2 tabular-nums" id="reportPeriod">
101
+ 2026-03-01 ~ 2026-03-07
102
+ </td>
103
+ </tr>
104
+ </tbody>
105
+ </table>
70
106
 
71
- <aside class="no-print mb-8 border-2 border-neutral-900 bg-neutral-50 p-4 text-sm leading-relaxed text-neutral-900">
72
- <p class="font-bold">特此说明:</p>
73
- <p class="mt-2 indent-8">
74
- 若本报告涉及 BingV2 数据源,统计区间不得包含「今日」或「昨日」,否则接口将无法正常返回;具体以技术文档及 CLI 说明为准。请各阅文单位在引用数据前核对统计口径。
75
- </p>
76
- </aside>
107
+ <aside
108
+ class="no-print mb-8 border-2 border-neutral-900 bg-neutral-50 p-4 text-sm leading-relaxed text-neutral-900"
109
+ >
110
+ <p class="font-bold">特此说明:</p>
111
+ <p class="mt-2 indent-8">
112
+ 若本报告涉及 BingV2
113
+ 数据源,统计区间不得包含「今日」或「昨日」,否则接口将无法正常返回;具体以技术文档及 CLI
114
+ 说明为准。请各阅文单位在引用数据前核对统计口径。
115
+ </p>
116
+ </aside>
77
117
 
78
- <section class="mb-10" data-section-id="section-executive-summary">
79
- <h2 class="mb-3 text-lg font-bold text-neutral-900">一、执行摘要</h2>
80
- <p class="mb-4 text-sm leading-7 text-neutral-800 indent-8">
81
- 本部分汇总观测期内核心投放指标,包括消耗、展示、点击、转化及主要派生比率;下列数据表与图示仅供版式参考,正式文本应以业务系统导出为准。
82
- </p>
118
+ <section class="mb-10" data-section-id="section-executive-summary">
119
+ <h2 class="mb-3 text-lg font-bold text-neutral-900">一、执行摘要</h2>
120
+ <p class="mb-4 text-sm leading-7 text-neutral-800 indent-8">
121
+ 本部分汇总观测期内核心投放指标,包括消耗、展示、点击、转化及主要派生比率;下列数据表与图示仅供版式参考,正式文本应以业务系统导出为准。
122
+ </p>
83
123
 
84
- <div class="mb-4 border-2 border-neutral-900">
85
- <div class="grid grid-cols-2 border-b-2 border-neutral-900 bg-neutral-100 text-center text-sm font-bold sm:grid-cols-4">
86
- <div class="border-r border-neutral-900 py-2 sm:border-r-0">消耗</div>
87
- <div class="border-r border-neutral-900 py-2 sm:border-r">展示</div>
88
- <div class="border-r border-neutral-900 py-2 sm:border-r">点击</div>
89
- <div class="py-2">转化</div>
90
- </div>
91
- <div class="grid grid-cols-2 text-center sm:grid-cols-4">
92
- <div class="border-r border-b border-neutral-900 py-3 text-lg font-bold tabular-nums sm:border-b-0" id="spendValue">¥12,580</div>
93
- <div class="border-b border-neutral-900 py-3 text-lg font-bold tabular-nums sm:border-b-0 sm:border-r" id="impressionsValue">1.24M</div>
94
- <div class="border-r border-b border-neutral-900 py-3 text-lg font-bold tabular-nums sm:border-b-0" id="clicksValue">18,420</div>
95
- <div class="border-b border-neutral-900 py-3 text-lg font-bold tabular-nums sm:border-b-0">312</div>
124
+ <div class="mb-4 border-2 border-neutral-900">
125
+ <div
126
+ class="grid grid-cols-2 border-b-2 border-neutral-900 bg-neutral-100 text-center text-sm font-bold sm:grid-cols-4"
127
+ >
128
+ <div class="border-r border-neutral-900 py-2 sm:border-r-0">消耗</div>
129
+ <div class="border-r border-neutral-900 py-2 sm:border-r">展示</div>
130
+ <div class="border-r border-neutral-900 py-2 sm:border-r">点击</div>
131
+ <div class="py-2">转化</div>
132
+ </div>
133
+ <div class="grid grid-cols-2 text-center sm:grid-cols-4">
134
+ <div
135
+ class="border-r border-b border-neutral-900 py-3 text-lg font-bold tabular-nums sm:border-b-0"
136
+ id="spendValue"
137
+ >
138
+ ¥12,580
139
+ </div>
140
+ <div
141
+ class="border-b border-neutral-900 py-3 text-lg font-bold tabular-nums sm:border-b-0 sm:border-r"
142
+ id="impressionsValue"
143
+ >
144
+ 1.24M
145
+ </div>
146
+ <div
147
+ class="border-r border-b border-neutral-900 py-3 text-lg font-bold tabular-nums sm:border-b-0"
148
+ id="clicksValue"
149
+ >
150
+ 18,420
151
+ </div>
152
+ <div
153
+ class="border-b border-neutral-900 py-3 text-lg font-bold tabular-nums sm:border-b-0"
154
+ >
155
+ 312
156
+ </div>
157
+ </div>
158
+ <div
159
+ class="grid grid-cols-2 border-t border-neutral-900 bg-neutral-50 text-center text-xs text-neutral-700 sm:grid-cols-4"
160
+ >
161
+ <div class="border-r border-neutral-900 py-2" id="spendPct">环比 +8.2%</div>
162
+ <div class="border-r border-neutral-900 py-2" id="impressionsPct">环比 −2.1%</div>
163
+ <div class="border-r border-neutral-900 py-2" id="clicksPct">CTR 1.49%</div>
164
+ <div class="py-2">CPA ¥40.3</div>
165
+ </div>
96
166
  </div>
97
- <div class="grid grid-cols-2 border-t border-neutral-900 bg-neutral-50 text-center text-xs text-neutral-700 sm:grid-cols-4">
98
- <div class="border-r border-neutral-900 py-2" id="spendPct">环比 +8.2%</div>
99
- <div class="border-r border-neutral-900 py-2" id="impressionsPct">环比 −2.1%</div>
100
- <div class="border-r border-neutral-900 py-2" id="clicksPct">CTR 1.49%</div>
101
- <div class="py-2">CPA ¥40.3</div>
102
- </div>
103
- </div>
104
-
105
- <div class="border-2 border-neutral-900 p-3">
106
- <p class="mb-2 text-center text-sm font-bold text-neutral-900">附图:关键指标趋势(示例)</p>
107
- <div id="trendChart" class="h-72 w-full min-h-[240px]" role="img" aria-label="关键指标趋势图"></div>
108
- </div>
109
- </section>
110
167
 
111
- <section class="mb-10" data-section-id="section-kpi-funnel">
112
- <h2 class="mb-3 text-lg font-bold text-neutral-900">二、漏斗式数据概览</h2>
113
- <div class="overflow-x-auto">
114
- <table class="w-full border-collapse border-2 border-neutral-900 text-sm">
115
- <thead>
116
- <tr class="bg-neutral-100">
117
- <th class="border border-neutral-900 px-2 py-2 text-center font-bold">步骤</th>
118
- <th class="border border-neutral-900 px-2 py-2 text-center font-bold">指标</th>
119
- <th class="border border-neutral-900 px-2 py-2 text-center font-bold">数值</th>
120
- <th class="border border-neutral-900 px-2 py-2 text-center font-bold">附注</th>
121
- </tr>
122
- </thead>
123
- <tbody>
124
- <tr>
125
- <td class="border border-neutral-900 px-2 py-2 text-center">1</td>
126
- <td class="border border-neutral-900 px-2 py-2">消耗 (Cost)</td>
127
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">¥12,580</td>
128
- <td class="border border-neutral-900 px-2 py-2 text-neutral-700">—</td>
129
- </tr>
130
- <tr>
131
- <td class="border border-neutral-900 px-2 py-2 text-center">2</td>
132
- <td class="border border-neutral-900 px-2 py-2">展示次数 (Impressions)</td>
133
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">1,240,000</td>
134
- <td class="border border-neutral-900 px-2 py-2 text-neutral-700">—</td>
135
- </tr>
136
- <tr>
137
- <td class="border border-neutral-900 px-2 py-2 text-center">3</td>
138
- <td class="border border-neutral-900 px-2 py-2">点击次数 (Clicks)</td>
139
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">18,420</td>
140
- <td class="border border-neutral-900 px-2 py-2 text-neutral-700">CTR 1.49%</td>
141
- </tr>
142
- <tr>
143
- <td class="border border-neutral-900 px-2 py-2 text-center">4</td>
144
- <td class="border border-neutral-900 px-2 py-2">转化次数 (Conversions)</td>
145
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">312</td>
146
- <td class="border border-neutral-900 px-2 py-2 text-neutral-700">CVR —</td>
147
- </tr>
148
- </tbody>
149
- </table>
150
- </div>
151
- </section>
152
-
153
- <section class="mb-10" data-section-id="section-structure-breakdown">
154
- <h2 class="mb-3 text-lg font-bold text-neutral-900">三、账户结构与分布情况</h2>
155
- <div class="grid gap-6 lg:grid-cols-2">
156
- <table class="w-full border-collapse border-2 border-neutral-900 text-sm">
157
- <tbody>
158
- <tr><td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">有效广告系列</td><td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">42</td></tr>
159
- <tr><td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">广告组</td><td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">128</td></tr>
160
- <tr><td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">关键字</td><td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">3.2k</td></tr>
161
- <tr><td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">广告</td><td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">860</td></tr>
162
- <tr><td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">投放国家</td><td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">12</td></tr>
163
- <tr><td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">附加链接</td><td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">24</td></tr>
164
- </tbody>
165
- </table>
166
168
  <div class="border-2 border-neutral-900 p-3">
167
- <p class="mb-2 text-center text-sm font-bold">附图:设备构成(示例)</p>
168
- <div id="breakdownChart" class="h-64 w-full" role="img" aria-label="构成图"></div>
169
+ <p class="mb-2 text-center text-sm font-bold text-neutral-900">
170
+ 附图:关键指标趋势(示例)
171
+ </p>
172
+ <div
173
+ id="trendChart"
174
+ class="h-72 w-full min-h-[240px]"
175
+ role="img"
176
+ aria-label="关键指标趋势图"
177
+ ></div>
169
178
  </div>
170
- </div>
171
- </section>
179
+ </section>
172
180
 
173
- <section class="mb-10" data-section-id="section-diagnosis-pros-cons">
174
- <h2 class="mb-3 text-lg font-bold text-neutral-900">四、主要结论与存在问题</h2>
175
- <p class="mb-3 text-sm font-bold">(一)主要结论</p>
176
- <ol class="mb-4 list-decimal space-y-2 pl-6 text-sm leading-7 text-neutral-800">
177
- <li>消耗效率总体稳定,近 7 日 CPA 低于账户均值。</li>
178
- <li>头部关键词 CVR 提升明显,高意向流量覆盖较好。</li>
179
- </ol>
180
- <p class="mb-3 text-sm font-bold">(二)存在问题</p>
181
- <ol class="list-decimal space-y-2 pl-6 text-sm leading-7 text-neutral-800">
182
- <li>部分系列展示份额下滑,或与预算及出价策略有关。</li>
183
- <li>搜索词报表显示否定关键词覆盖仍不足,存在低效流量。</li>
184
- </ol>
185
- </section>
181
+ <section class="mb-10" data-section-id="section-kpi-funnel">
182
+ <h2 class="mb-3 text-lg font-bold text-neutral-900">二、漏斗式数据概览</h2>
183
+ <div class="overflow-x-auto">
184
+ <table class="w-full border-collapse border-2 border-neutral-900 text-sm">
185
+ <thead>
186
+ <tr class="bg-neutral-100">
187
+ <th class="border border-neutral-900 px-2 py-2 text-center font-bold">步骤</th>
188
+ <th class="border border-neutral-900 px-2 py-2 text-center font-bold">指标</th>
189
+ <th class="border border-neutral-900 px-2 py-2 text-center font-bold">数值</th>
190
+ <th class="border border-neutral-900 px-2 py-2 text-center font-bold">附注</th>
191
+ </tr>
192
+ </thead>
193
+ <tbody>
194
+ <tr>
195
+ <td class="border border-neutral-900 px-2 py-2 text-center">1</td>
196
+ <td class="border border-neutral-900 px-2 py-2">消耗 (Cost)</td>
197
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">
198
+ ¥12,580
199
+ </td>
200
+ <td class="border border-neutral-900 px-2 py-2 text-neutral-700">—</td>
201
+ </tr>
202
+ <tr>
203
+ <td class="border border-neutral-900 px-2 py-2 text-center">2</td>
204
+ <td class="border border-neutral-900 px-2 py-2">展示次数 (Impressions)</td>
205
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">
206
+ 1,240,000
207
+ </td>
208
+ <td class="border border-neutral-900 px-2 py-2 text-neutral-700">—</td>
209
+ </tr>
210
+ <tr>
211
+ <td class="border border-neutral-900 px-2 py-2 text-center">3</td>
212
+ <td class="border border-neutral-900 px-2 py-2">点击次数 (Clicks)</td>
213
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">
214
+ 18,420
215
+ </td>
216
+ <td class="border border-neutral-900 px-2 py-2 text-neutral-700">CTR 1.49%</td>
217
+ </tr>
218
+ <tr>
219
+ <td class="border border-neutral-900 px-2 py-2 text-center">4</td>
220
+ <td class="border border-neutral-900 px-2 py-2">转化次数 (Conversions)</td>
221
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">
222
+ 312
223
+ </td>
224
+ <td class="border border-neutral-900 px-2 py-2 text-neutral-700">CVR —</td>
225
+ </tr>
226
+ </tbody>
227
+ </table>
228
+ </div>
229
+ </section>
186
230
 
187
- <section class="mb-10" data-section-id="section-data-table">
188
- <h2 class="mb-3 text-lg font-bold text-neutral-900">五、明细表</h2>
189
- <div class="overflow-x-auto">
190
- <table class="min-w-[640px] w-full border-collapse border-2 border-neutral-900 text-sm">
191
- <thead>
192
- <tr class="bg-neutral-100">
193
- <th class="border border-neutral-900 px-2 py-2 text-left font-bold">系列</th>
194
- <th class="border border-neutral-900 px-2 py-2 text-right font-bold">花费</th>
195
- <th class="border border-neutral-900 px-2 py-2 text-right font-bold">点击</th>
196
- <th class="border border-neutral-900 px-2 py-2 text-right font-bold">转化</th>
197
- <th class="border border-neutral-900 px-2 py-2 text-right font-bold">CVR</th>
198
- <th class="border border-neutral-900 px-2 py-2 text-right font-bold">环比花费</th>
199
- </tr>
200
- </thead>
201
- <tbody>
202
- <tr>
203
- <td class="border border-neutral-900 px-2 py-2 font-medium">品牌-搜索</td>
204
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">¥4,200</td>
205
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">2,100</td>
206
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">98</td>
207
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">4.7%</td>
208
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">+5%</td>
209
- </tr>
210
- <tr>
211
- <td class="border border-neutral-900 px-2 py-2 font-medium">通用-搜索</td>
212
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">¥8,380</td>
213
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">16,320</td>
214
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">214</td>
215
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">1.3%</td>
216
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">−3%</td>
217
- </tr>
218
- </tbody>
219
- </table>
220
- </div>
221
- </section>
231
+ <section class="mb-10" data-section-id="section-structure-breakdown">
232
+ <h2 class="mb-3 text-lg font-bold text-neutral-900">三、账户结构与分布情况</h2>
233
+ <div class="grid gap-6 lg:grid-cols-2">
234
+ <table class="w-full border-collapse border-2 border-neutral-900 text-sm">
235
+ <tbody>
236
+ <tr>
237
+ <td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">
238
+ 有效广告系列
239
+ </td>
240
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">
241
+ 42
242
+ </td>
243
+ </tr>
244
+ <tr>
245
+ <td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">
246
+ 广告组
247
+ </td>
248
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">
249
+ 128
250
+ </td>
251
+ </tr>
252
+ <tr>
253
+ <td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">
254
+ 关键字
255
+ </td>
256
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">
257
+ 3.2k
258
+ </td>
259
+ </tr>
260
+ <tr>
261
+ <td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">
262
+ 广告
263
+ </td>
264
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">
265
+ 860
266
+ </td>
267
+ </tr>
268
+ <tr>
269
+ <td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">
270
+ 投放国家
271
+ </td>
272
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">
273
+ 12
274
+ </td>
275
+ </tr>
276
+ <tr>
277
+ <td class="border border-neutral-900 bg-neutral-100 px-2 py-2 font-semibold">
278
+ 附加链接
279
+ </td>
280
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-bold">
281
+ 24
282
+ </td>
283
+ </tr>
284
+ </tbody>
285
+ </table>
286
+ <div class="border-2 border-neutral-900 p-3">
287
+ <p class="mb-2 text-center text-sm font-bold">附图:设备构成(示例)</p>
288
+ <div id="breakdownChart" class="h-64 w-full" role="img" aria-label="构成图"></div>
289
+ </div>
290
+ </div>
291
+ </section>
222
292
 
223
- <section class="mb-10" data-section-id="section-benchmark">
224
- <h2 class="mb-3 text-lg font-bold text-neutral-900">六、与参照基准之对照</h2>
225
- <div class="overflow-x-auto">
226
- <table class="w-full border-collapse border-2 border-neutral-900 text-sm">
227
- <thead>
228
- <tr class="bg-neutral-100">
229
- <th class="border border-neutral-900 px-2 py-2 text-left font-bold">指标</th>
230
- <th class="border border-neutral-900 px-2 py-2 text-right font-bold">数据</th>
231
- <th class="border border-neutral-900 px-2 py-2 text-right font-bold">基准</th>
232
- <th class="border border-neutral-900 px-2 py-2 text-center font-bold">状态</th>
233
- </tr>
234
- </thead>
235
- <tbody>
236
- <tr>
237
- <td class="border border-neutral-900 px-2 py-2">CTR</td>
238
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">1.49%</td>
239
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums text-neutral-700">1.2%</td>
240
- <td class="border border-neutral-900 px-2 py-2 text-center">优于基准</td>
241
- </tr>
242
- <tr>
243
- <td class="border border-neutral-900 px-2 py-2">CPA</td>
244
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">¥40.3</td>
245
- <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums text-neutral-700">¥45.0</td>
246
- <td class="border border-neutral-900 px-2 py-2 text-center">优于基准</td>
247
- </tr>
248
- </tbody>
249
- </table>
250
- </div>
251
- </section>
293
+ <section class="mb-10" data-section-id="section-diagnosis-pros-cons">
294
+ <h2 class="mb-3 text-lg font-bold text-neutral-900">四、主要结论与存在问题</h2>
295
+ <p class="mb-3 text-sm font-bold">(一)主要结论</p>
296
+ <ol class="mb-4 list-decimal space-y-2 pl-6 text-sm leading-7 text-neutral-800">
297
+ <li>消耗效率总体稳定,近 7 日 CPA 低于账户均值。</li>
298
+ <li>头部关键词 CVR 提升明显,高意向流量覆盖较好。</li>
299
+ </ol>
300
+ <p class="mb-3 text-sm font-bold">(二)存在问题</p>
301
+ <ol class="list-decimal space-y-2 pl-6 text-sm leading-7 text-neutral-800">
302
+ <li>部分系列展示份额下滑,或与预算及出价策略有关。</li>
303
+ <li>搜索词报表显示否定关键词覆盖仍不足,存在低效流量。</li>
304
+ </ol>
305
+ </section>
252
306
 
253
- <footer class="border-t-2 border-neutral-900 pt-6 text-sm text-neutral-700">
254
- <p class="text-right text-xs text-neutral-600">此件仅供内部参阅。</p>
255
- <p class="mt-4 text-xs leading-relaxed text-neutral-600">
256
- 本文件为正式向 HTML 版式参考(黑框表、红头线、中文序号章节)。生成正式稿时请替换为实测数据,并与 Markdown 纲要章节顺序保持一致。
257
- </p>
258
- </footer>
259
- </main>
307
+ <section class="mb-10" data-section-id="section-data-table">
308
+ <h2 class="mb-3 text-lg font-bold text-neutral-900">五、明细表</h2>
309
+ <div class="overflow-x-auto">
310
+ <table class="min-w-[640px] w-full border-collapse border-2 border-neutral-900 text-sm">
311
+ <thead>
312
+ <tr class="bg-neutral-100">
313
+ <th class="border border-neutral-900 px-2 py-2 text-left font-bold">系列</th>
314
+ <th class="border border-neutral-900 px-2 py-2 text-right font-bold">花费</th>
315
+ <th class="border border-neutral-900 px-2 py-2 text-right font-bold">点击</th>
316
+ <th class="border border-neutral-900 px-2 py-2 text-right font-bold">转化</th>
317
+ <th class="border border-neutral-900 px-2 py-2 text-right font-bold">CVR</th>
318
+ <th class="border border-neutral-900 px-2 py-2 text-right font-bold">环比花费</th>
319
+ </tr>
320
+ </thead>
321
+ <tbody>
322
+ <tr>
323
+ <td class="border border-neutral-900 px-2 py-2 font-medium">品牌-搜索</td>
324
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">¥4,200</td>
325
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">2,100</td>
326
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">98</td>
327
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">4.7%</td>
328
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">+5%</td>
329
+ </tr>
330
+ <tr>
331
+ <td class="border border-neutral-900 px-2 py-2 font-medium">通用-搜索</td>
332
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">¥8,380</td>
333
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">16,320</td>
334
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">214</td>
335
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">1.3%</td>
336
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums">−3%</td>
337
+ </tr>
338
+ </tbody>
339
+ </table>
340
+ </div>
341
+ </section>
260
342
 
261
- <script>
262
- (function () {
263
- var trendEl = document.getElementById('trendChart');
264
- var pieEl = document.getElementById('breakdownChart');
265
- if (!trendEl || !pieEl || typeof echarts === 'undefined') return;
343
+ <section class="mb-10" data-section-id="section-benchmark">
344
+ <h2 class="mb-3 text-lg font-bold text-neutral-900">六、与参照基准之对照</h2>
345
+ <div class="overflow-x-auto">
346
+ <table class="w-full border-collapse border-2 border-neutral-900 text-sm">
347
+ <thead>
348
+ <tr class="bg-neutral-100">
349
+ <th class="border border-neutral-900 px-2 py-2 text-left font-bold">指标</th>
350
+ <th class="border border-neutral-900 px-2 py-2 text-right font-bold">数据</th>
351
+ <th class="border border-neutral-900 px-2 py-2 text-right font-bold">基准</th>
352
+ <th class="border border-neutral-900 px-2 py-2 text-center font-bold">状态</th>
353
+ </tr>
354
+ </thead>
355
+ <tbody>
356
+ <tr>
357
+ <td class="border border-neutral-900 px-2 py-2">CTR</td>
358
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">
359
+ 1.49%
360
+ </td>
361
+ <td
362
+ class="border border-neutral-900 px-2 py-2 text-right tabular-nums text-neutral-700"
363
+ >
364
+ 1.2%
365
+ </td>
366
+ <td class="border border-neutral-900 px-2 py-2 text-center">优于基准</td>
367
+ </tr>
368
+ <tr>
369
+ <td class="border border-neutral-900 px-2 py-2">CPA</td>
370
+ <td class="border border-neutral-900 px-2 py-2 text-right tabular-nums font-medium">
371
+ ¥40.3
372
+ </td>
373
+ <td
374
+ class="border border-neutral-900 px-2 py-2 text-right tabular-nums text-neutral-700"
375
+ >
376
+ ¥45.0
377
+ </td>
378
+ <td class="border border-neutral-900 px-2 py-2 text-center">优于基准</td>
379
+ </tr>
380
+ </tbody>
381
+ </table>
382
+ </div>
383
+ </section>
266
384
 
267
- var trendChart = echarts.init(trendEl, null, { renderer: 'canvas' });
268
- trendChart.setOption({
269
- color: ['#1e3a8a', '#374151'],
270
- textStyle: { color: '#171717' },
271
- tooltip: { trigger: 'axis' },
272
- legend: { data: ['消耗(百元)', '点击(百次)'], top: 0 },
273
- grid: { left: '3%', right: '4%', bottom: '3%', top: 48, containLabel: true },
274
- xAxis: {
275
- type: 'category',
276
- boundaryGap: false,
277
- data: ['1日', '2日', '3日', '4日', '5日', '6日', '7日'],
278
- axisLine: { lineStyle: { color: '#404040' } },
279
- },
280
- yAxis: { type: 'value', splitLine: { lineStyle: { type: 'solid', color: '#d4d4d4' } } },
281
- series: [
282
- { name: '消耗(百元)', type: 'line', smooth: false, symbol: 'rect', symbolSize: 6, lineStyle: { width: 2 }, data: [200, 250, 220, 300, 280, 320, 310] },
283
- { name: '点击(百次)', type: 'line', smooth: false, symbol: 'rect', symbolSize: 6, lineStyle: { width: 2, type: 'dashed' }, data: [33, 48, 45, 60, 52, 68, 61] },
284
- ],
285
- });
385
+ <footer class="border-t-2 border-neutral-900 pt-6 text-sm text-neutral-700">
386
+ <p class="text-right text-xs text-neutral-600">此件仅供内部参阅。</p>
387
+ <p class="mt-4 text-xs leading-relaxed text-neutral-600">
388
+ 本文件为正式向 HTML
389
+ 版式参考(黑框表、红头线、中文序号章节)。生成正式稿时请替换为实测数据,并与 Markdown
390
+ 纲要章节顺序保持一致。
391
+ </p>
392
+ </footer>
393
+ </main>
286
394
 
287
- var breakdownChart = echarts.init(pieEl, null, { renderer: 'canvas' });
288
- breakdownChart.setOption({
289
- color: ['#1e3a8a', '#525252', '#a3a3a3'],
290
- textStyle: { color: '#171717' },
291
- tooltip: { trigger: 'item' },
292
- legend: { orient: 'vertical', left: 'left', top: 'middle' },
293
- series: [
294
- {
295
- name: '设备',
296
- type: 'pie',
297
- radius: ['38%', '62%'],
298
- center: ['58%', '50%'],
299
- itemStyle: { borderColor: '#fff', borderWidth: 2 },
300
- label: { formatter: '{b}\n{d}%' },
301
- data: [
302
- { value: 52, name: '移动端' },
303
- { value: 35, name: '桌面' },
304
- { value: 13, name: '平板' },
305
- ],
395
+ <script>
396
+ (function () {
397
+ var trendEl = document.getElementById("trendChart");
398
+ var pieEl = document.getElementById("breakdownChart");
399
+ if (!trendEl || !pieEl || typeof echarts === "undefined") return;
400
+
401
+ var trendChart = echarts.init(trendEl, null, { renderer: "canvas" });
402
+ trendChart.setOption({
403
+ color: ["#1e3a8a", "#374151"],
404
+ textStyle: { color: "#171717" },
405
+ tooltip: { trigger: "axis" },
406
+ legend: { data: ["消耗(百元)", "点击(百次)"], top: 0 },
407
+ grid: { left: "3%", right: "4%", bottom: "3%", top: 48, containLabel: true },
408
+ xAxis: {
409
+ type: "category",
410
+ boundaryGap: false,
411
+ data: ["1日", "2日", "3日", "4日", "5日", "6日", "7日"],
412
+ axisLine: { lineStyle: { color: "#404040" } },
306
413
  },
307
- ],
308
- });
414
+ yAxis: { type: "value", splitLine: { lineStyle: { type: "solid", color: "#d4d4d4" } } },
415
+ series: [
416
+ {
417
+ name: "消耗(百元)",
418
+ type: "line",
419
+ smooth: false,
420
+ symbol: "rect",
421
+ symbolSize: 6,
422
+ lineStyle: { width: 2 },
423
+ data: [200, 250, 220, 300, 280, 320, 310],
424
+ },
425
+ {
426
+ name: "点击(百次)",
427
+ type: "line",
428
+ smooth: false,
429
+ symbol: "rect",
430
+ symbolSize: 6,
431
+ lineStyle: { width: 2, type: "dashed" },
432
+ data: [33, 48, 45, 60, 52, 68, 61],
433
+ },
434
+ ],
435
+ });
309
436
 
310
- function resize() {
311
- trendChart.resize();
312
- breakdownChart.resize();
313
- }
314
- window.addEventListener('resize', resize);
315
- })();
316
- </script>
317
- </body>
437
+ var breakdownChart = echarts.init(pieEl, null, { renderer: "canvas" });
438
+ breakdownChart.setOption({
439
+ color: ["#1e3a8a", "#525252", "#a3a3a3"],
440
+ textStyle: { color: "#171717" },
441
+ tooltip: { trigger: "item" },
442
+ legend: { orient: "vertical", left: "left", top: "middle" },
443
+ series: [
444
+ {
445
+ name: "设备",
446
+ type: "pie",
447
+ radius: ["38%", "62%"],
448
+ center: ["58%", "50%"],
449
+ itemStyle: { borderColor: "#fff", borderWidth: 2 },
450
+ label: { formatter: "{b}\n{d}%" },
451
+ data: [
452
+ { value: 52, name: "移动端" },
453
+ { value: 35, name: "桌面" },
454
+ { value: 13, name: "平板" },
455
+ ],
456
+ },
457
+ ],
458
+ });
459
+
460
+ function resize() {
461
+ trendChart.resize();
462
+ breakdownChart.resize();
463
+ }
464
+ window.addEventListener("resize", resize);
465
+ })();
466
+ </script>
467
+ </body>
318
468
  </html>