-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
962 lines (881 loc) · 44 KB
/
Copy pathindex.html
File metadata and controls
962 lines (881 loc) · 44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>互联网商业化与广告入门教程 · v1</title>
<meta name="description" content="一份面向产品、运营、数据、投放新同学的入门教程。从商业化底层逻辑出发,讲清 CPM、CPC、eCPM、oCPX 等指标之间的数学关系,横向对比字节、小红书、Meta、Google 的做法。">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@500;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel="stylesheet">
<style>
:root {
--bg: #faf8f5;
--bg-alt: #f2ede3;
--ink: #1a1a1a;
--ink-dim: #4a4a4a;
--ink-faint: #8b8680;
--rule: #e6dfd2;
--accent: #b8451f; /* terracotta */
--accent-dim: #d87553;
--byte: #1677ff;
--red: #ff2442;
--meta: #0866ff;
--google: #34a853;
--code-bg: #1d1d1b;
--code-ink: #e8e5de;
--shadow: 0 1px 2px rgba(0,0,0,0.04), 0 8px 24px rgba(0,0,0,0.06);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
font-family: "Inter", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
background: var(--bg);
color: var(--ink);
font-size: 16px;
line-height: 1.7;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
.serif { font-family: "Noto Serif SC", "Songti SC", Georgia, serif; font-weight: 700; }
code, pre, .mono { font-family: "JetBrains Mono", "SF Mono", ui-monospace, monospace; }
/* ---------- Layout ---------- */
.page {
display: grid;
grid-template-columns: 260px minmax(0, 1fr);
max-width: 1240px;
margin: 0 auto;
gap: 48px;
padding: 0 32px;
}
.sidebar {
position: sticky;
top: 0;
align-self: start;
height: 100vh;
overflow-y: auto;
padding: 48px 0 32px;
border-right: 1px solid var(--rule);
padding-right: 24px;
font-size: 14px;
}
.sidebar::-webkit-scrollbar { width: 4px; }
.sidebar::-webkit-scrollbar-thumb { background: var(--rule); border-radius: 2px; }
.sidebar h4 {
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--ink-faint);
margin: 24px 0 8px;
font-weight: 600;
}
.sidebar a {
display: block;
padding: 6px 0;
color: var(--ink-dim);
text-decoration: none;
border-left: 2px solid transparent;
padding-left: 12px;
margin-left: -12px;
transition: all 0.15s ease;
}
.sidebar a:hover, .sidebar a.active {
color: var(--accent);
border-left-color: var(--accent);
}
.sidebar .brand {
font-size: 13px;
font-weight: 600;
letter-spacing: 0.02em;
color: var(--ink);
margin-bottom: 8px;
}
.sidebar .brand small {
display: block;
color: var(--ink-faint);
font-weight: 400;
letter-spacing: 0;
margin-top: 4px;
}
main { padding: 48px 0 120px; min-width: 0; max-width: 760px; }
/* ---------- Hero ---------- */
.hero {
padding: 48px 0 56px;
border-bottom: 1px solid var(--rule);
margin-bottom: 56px;
}
.eyebrow {
font-size: 12px;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--accent);
font-weight: 600;
margin-bottom: 20px;
}
.hero h1.serif {
font-size: clamp(36px, 5vw, 56px);
line-height: 1.15;
margin: 0 0 24px;
letter-spacing: -0.01em;
}
.hero .lede {
font-size: 18px;
color: var(--ink-dim);
max-width: 640px;
line-height: 1.6;
margin: 0;
}
.meta-row {
display: flex;
gap: 24px;
margin-top: 32px;
font-size: 13px;
color: var(--ink-faint);
flex-wrap: wrap;
}
.meta-row span::before { content: "—"; margin-right: 8px; color: var(--rule); }
.meta-row span:first-child::before { display: none; }
/* ---------- Sections ---------- */
section { margin: 64px 0; scroll-margin-top: 24px; }
h2.serif {
font-size: 30px;
line-height: 1.3;
margin: 0 0 8px;
letter-spacing: -0.005em;
}
.chap-num {
display: inline-block;
font-size: 12px;
letter-spacing: 0.15em;
color: var(--ink-faint);
margin-bottom: 8px;
font-weight: 500;
text-transform: uppercase;
}
h3 {
font-family: "Noto Serif SC", Georgia, serif;
font-size: 22px;
font-weight: 700;
margin: 40px 0 12px;
letter-spacing: -0.003em;
}
h4 { font-size: 15px; font-weight: 600; margin: 24px 0 8px; color: var(--ink); }
p { margin: 12px 0; }
strong { font-weight: 600; color: var(--ink); }
.intro-lede {
font-size: 17px;
color: var(--ink-dim);
border-left: 3px solid var(--accent);
padding-left: 20px;
margin: 16px 0 32px;
font-style: italic;
line-height: 1.6;
}
/* ---------- Callouts ---------- */
.callout {
background: var(--bg-alt);
border-radius: 8px;
padding: 20px 24px;
margin: 24px 0;
font-size: 15px;
}
.callout .label {
font-size: 11px;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--accent);
font-weight: 600;
margin-bottom: 8px;
}
.callout.formula {
background: var(--code-bg);
color: var(--code-ink);
font-family: "JetBrains Mono", monospace;
text-align: center;
padding: 28px 24px;
font-size: 16px;
}
.callout.formula .eq {
font-size: 18px;
line-height: 1.8;
}
.callout.formula .label { color: var(--accent-dim); }
/* ---------- Tables ---------- */
.tbl-wrap { overflow-x: auto; margin: 20px 0; }
table {
width: 100%;
border-collapse: collapse;
font-size: 14px;
line-height: 1.5;
}
th, td {
text-align: left;
padding: 12px 16px;
border-bottom: 1px solid var(--rule);
vertical-align: top;
}
th {
font-weight: 600;
color: var(--ink);
background: var(--bg-alt);
font-size: 12px;
letter-spacing: 0.04em;
text-transform: uppercase;
}
th:first-child, td:first-child { padding-left: 20px; }
tbody tr:hover { background: rgba(184, 69, 31, 0.03); }
td code {
background: var(--bg-alt);
padding: 2px 6px;
border-radius: 3px;
font-size: 12.5px;
color: var(--accent);
}
/* ---------- Inline code ---------- */
p code, li code {
background: var(--bg-alt);
padding: 2px 6px;
border-radius: 3px;
font-size: 13px;
color: var(--accent);
}
pre.ascii {
background: var(--code-bg);
color: var(--code-ink);
padding: 24px;
border-radius: 8px;
font-size: 13px;
line-height: 1.7;
overflow-x: auto;
margin: 24px 0;
}
/* ---------- Lists ---------- */
ul, ol { padding-left: 24px; margin: 12px 0; }
li { margin: 6px 0; }
li strong { color: var(--ink); }
/* ---------- Funnel diagram ---------- */
.funnel {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 8px;
margin: 32px 0;
font-size: 13px;
}
.funnel .step {
background: var(--bg-alt);
padding: 16px 12px;
border-radius: 8px;
text-align: center;
position: relative;
}
.funnel .step .label {
font-size: 11px;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--ink-faint);
margin-bottom: 4px;
}
.funnel .step .value {
font-weight: 600;
font-family: "JetBrains Mono", monospace;
color: var(--accent);
font-size: 14px;
}
.funnel .arrow {
display: flex;
align-items: center;
justify-content: center;
color: var(--accent);
font-weight: 700;
}
/* ---------- Company cards ---------- */
.company-grid {
display: grid;
grid-template-columns: 1fr;
gap: 20px;
margin: 32px 0;
}
.company-card {
background: white;
border: 1px solid var(--rule);
border-radius: 12px;
padding: 28px 32px;
box-shadow: var(--shadow);
border-top: 3px solid var(--accent);
}
.company-card.byte { border-top-color: var(--byte); }
.company-card.red { border-top-color: var(--red); }
.company-card.meta { border-top-color: var(--meta); }
.company-card.google { border-top-color: var(--google); }
.company-card h3 { margin-top: 0; font-size: 20px; display: flex; align-items: baseline; gap: 12px; }
.company-card h3 .en {
font-family: "Inter", sans-serif;
font-size: 13px;
font-weight: 500;
color: var(--ink-faint);
letter-spacing: 0.02em;
}
.company-card h4 {
font-size: 12px;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--ink-faint);
margin-top: 20px;
margin-bottom: 8px;
font-weight: 600;
}
/* ---------- Footer ---------- */
footer {
margin-top: 80px;
padding-top: 40px;
border-top: 1px solid var(--rule);
font-size: 13px;
color: var(--ink-faint);
}
footer a { color: var(--ink-dim); }
a { color: var(--accent); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.15s; }
a:hover { border-bottom-color: var(--accent); }
/* ---------- Mobile ---------- */
@media (max-width: 900px) {
.page { grid-template-columns: 1fr; padding: 0 20px; gap: 0; }
.sidebar { display: none; }
main { padding: 32px 0 80px; }
.funnel { grid-template-columns: 1fr; }
.funnel .arrow { transform: rotate(90deg); padding: 4px 0; }
.hero h1.serif { font-size: 32px; }
}
</style>
</head>
<body>
<div class="page">
<!-- Sidebar Navigation -->
<aside class="sidebar">
<div class="brand">
互联网商业化教程
<small>v1 · 2026.04</small>
</div>
<h4>章节</h4>
<a href="#intro">引言</a>
<a href="#ch1">1 · 商业化全景</a>
<a href="#ch2">2 · 广告生态与角色</a>
<a href="#ch3">3 · 通用指标体系</a>
<a href="#ch4">4 · 竞价与计费</a>
<a href="#ch5">5 · 指标关系图</a>
<a href="#ch6">6 · 四家对比</a>
<a href="#ch7">7 · 平台内部指标</a>
<a href="#ch8">8 · 术语速查</a>
<h4>附录</h4>
<a href="#refs">延伸阅读</a>
</aside>
<main>
<!-- Hero -->
<section class="hero" id="intro">
<div class="eyebrow">入门教程 · v1</div>
<h1 class="serif">互联网商业化<br>与广告入门教程</h1>
<p class="lede">
从底层逻辑到指标公式,再到字节、小红书、Meta、Google 四家的做法对比。
面向产品、运营、数据、投放岗的新同学——用一份文档打通基础概念。
</p>
<div class="meta-row">
<span>8 章节</span>
<span>约 30 分钟阅读</span>
<span>含公式与对比表</span>
</div>
</section>
<!-- Chapter 1 -->
<section id="ch1">
<div class="chap-num">Chapter 01</div>
<h2 class="serif">互联网商业化全景</h2>
<p class="intro-lede">所有变现方式的本质,都是把"用户时长、注意力、决策"卖给愿意付费的第三方。</p>
<p>互联网公司的变现方式可以归为四大类:</p>
<div class="tbl-wrap">
<table>
<thead>
<tr><th>变现方式</th><th>典型代表</th><th>收入来源</th><th>核心能力</th></tr>
</thead>
<tbody>
<tr><td><strong>广告</strong></td><td>字节、Google、Meta、小红书</td><td>广告主预算</td><td>流量规模 × 分发算法 × 算力</td></tr>
<tr><td><strong>电商 / 交易佣金</strong></td><td>淘宝、拼多多、美团</td><td>GMV × Take Rate</td><td>供应链、履约、信任体系</td></tr>
<tr><td><strong>增值 / 订阅</strong></td><td>爱奇艺、Spotify、Apple One</td><td>用户付费</td><td>内容独占性、续费体验</td></tr>
<tr><td><strong>游戏 / 虚拟商品</strong></td><td>腾讯游戏、米哈游</td><td>道具、皮肤、抽卡</td><td>IP、数值策划、活动运营</td></tr>
</tbody>
</table>
</div>
<h3>广告在商业化中的位置</h3>
<p>对于内容型平台(字节、小红书、Meta、YouTube、Google),广告几乎是最核心的收入来源。字节 2019 年广告收入占比约 86%(<a href="http://www.21jingji.com/article/20200930/herald/2af358e687c901436dca551b660450a4.html" target="_blank">21 世纪经济报道</a>);Meta、Google 的广告收入长期占总收入 80% 以上。</p>
<div class="callout">
<div class="label">核心命题</div>
广告商业化 = 把平台上的用户注意力,<strong>通过算法</strong>,以<strong>最优价格</strong>,<strong>卖给愿意付费的广告主</strong>。围绕这一目标,形成了一整套生态、指标、竞价、计费体系。
</div>
</section>
<!-- Chapter 2 -->
<section id="ch2">
<div class="chap-num">Chapter 02</div>
<h2 class="serif">广告生态与角色</h2>
<h3>三大参与方</h3>
<ul>
<li><strong>广告主 Advertiser</strong>:花钱买曝光/点击/转化的品牌或商家。</li>
<li><strong>媒体 Publisher</strong>:拥有流量、把广告位卖出去的一方。</li>
<li><strong>用户 User</strong>:广告的接收者,其注意力是交易的标的物。</li>
</ul>
<p>此外还有<strong>代理商 / 服务商</strong>(帮广告主代运营投放)与<strong>归因 / 监测方</strong>(如 AppsFlyer、Adjust、小红星、小红盟)。</p>
<h3>程序化广告链路</h3>
<p>在复杂场景(开屏、激励视频、开放网络)中,会涉及以下角色:</p>
<div class="tbl-wrap">
<table>
<thead><tr><th>缩写</th><th>全称</th><th>角色</th></tr></thead>
<tbody>
<tr><td><strong>DSP</strong></td><td>Demand-Side Platform</td><td>代表广告主出价的系统</td></tr>
<tr><td><strong>SSP</strong></td><td>Supply-Side Platform</td><td>代表媒体管理库存、最大化收益</td></tr>
<tr><td><strong>ADX</strong></td><td>Ad Exchange</td><td>撮合 DSP 与 SSP 的实时竞价交易所</td></tr>
<tr><td><strong>DMP</strong></td><td>Data Management Platform</td><td>管理人群标签与受众包</td></tr>
<tr><td><strong>CDP</strong></td><td>Customer Data Platform</td><td>广告主一方数据,用于定向与回传</td></tr>
</tbody>
</table>
</div>
<div class="callout">
<div class="label">典型链路</div>
用户打开 App → SSP 向 ADX 发请求 → ADX 广播给各 DSP → DSP 返回出价 → ADX 选出赢家(GSP)→ 返回广告素材 → 用户看到广告。
<br><br>整个过程通常在 <strong>100 毫秒内</strong>完成。字节的<strong>穿山甲(Pangle)</strong>就是典型的 ADX + 广告联盟,日均请求量 620 亿+。
</div>
<h3>广告形式的产品分类</h3>
<ul>
<li><strong>按形态</strong>:开屏、横幅 Banner、原生信息流、激励视频、搜索广告、视频贴片、详情页插播</li>
<li><strong>按目的</strong>:品牌广告(偏曝光心智)/效果广告(偏直接转化)</li>
<li><strong>按售卖方式</strong>:合约广告 GD(按排期买断)/竞价广告 RTB(实时拍卖)</li>
</ul>
</section>
<!-- Chapter 3 -->
<section id="ch3">
<div class="chap-num">Chapter 03</div>
<h2 class="serif">通用指标体系与公式</h2>
<p class="intro-lede">所有术语可以拆成三类:计费口径(怎么收费)、效果口径(效果如何)、用户经济口径(长期价值)。</p>
<h3>3.1 计费口径:怎么收费</h3>
<div class="tbl-wrap">
<table>
<thead><tr><th>术语</th><th>全称</th><th>含义</th><th>公式</th></tr></thead>
<tbody>
<tr><td><strong>CPT</strong></td><td>Cost Per Time</td><td>按时间买断</td><td>固定价 × 时段</td></tr>
<tr><td><strong>CPM</strong></td><td>Cost Per Mille</td><td>千次曝光成本</td><td><code>费用 / 曝光 × 1000</code></td></tr>
<tr><td><strong>CPC</strong></td><td>Cost Per Click</td><td>单次点击成本</td><td><code>费用 / 点击</code></td></tr>
<tr><td><strong>CPA</strong></td><td>Cost Per Action</td><td>单次行为成本</td><td><code>费用 / 转化</code></td></tr>
<tr><td><strong>CPS</strong></td><td>Cost Per Sale</td><td>按成交分成</td><td><code>费用 / 订单</code></td></tr>
<tr><td><strong>CPI</strong></td><td>Cost Per Install</td><td>单次安装成本</td><td><code>费用 / 安装</code></td></tr>
<tr><td><strong>CPL</strong></td><td>Cost Per Lead</td><td>单次留资成本</td><td><code>费用 / 线索</code></td></tr>
<tr><td><strong>CPE</strong></td><td>Cost Per Engagement</td><td>单次互动成本(小红书常用)</td><td><code>费用 / (赞+藏+评)</code></td></tr>
</tbody>
</table>
</div>
<div class="callout">
<div class="label">趋势</div>
从 CPT → CPM → CPC → CPA → CPS,<strong>风险逐级从广告主转移到媒体</strong>:CPT/CPM 下媒体旱涝保收;CPS 下媒体要为最终成交负责。
</div>
<h3>3.2 效果口径:效果如何</h3>
<div class="tbl-wrap">
<table>
<thead><tr><th>术语</th><th>全称</th><th>公式</th></tr></thead>
<tbody>
<tr><td><strong>CTR</strong></td><td>Click-Through Rate 点击率</td><td><code>点击 / 曝光</code></td></tr>
<tr><td><strong>CVR</strong></td><td>Conversion Rate 转化率</td><td><code>转化 / 点击(或曝光)</code></td></tr>
<tr><td><strong>ROI</strong></td><td>Return on Investment</td><td><code>(收入 − 成本) / 成本</code></td></tr>
<tr><td><strong>ROAS</strong></td><td>Return on Ad Spend</td><td><code>广告带来的收入 / 广告花费</code></td></tr>
<tr><td><strong>ACoS</strong></td><td>Advertising Cost of Sale</td><td><code>花费 / 销售额 = 1 / ROAS</code></td></tr>
</tbody>
</table>
</div>
<p><strong>ROI ≠ ROAS</strong>:ROAS 只看毛收入,ROI 要扣成本。比如 ROAS = 3 表示花 1 块带来 3 块收入;若毛利率 30%,则 ROI =(3 × 0.3 − 1)= −10%,其实还亏钱。</p>
<h3>3.3 用户经济口径:长期价值</h3>
<div class="tbl-wrap">
<table>
<thead><tr><th>术语</th><th>含义</th></tr></thead>
<tbody>
<tr><td><strong>ARPU</strong></td><td>Average Revenue Per User · 人均收入 = 总收入 / DAU 或 MAU</td></tr>
<tr><td><strong>ARPPU</strong></td><td>Avg Revenue Per Paying User · 付费用户人均收入</td></tr>
<tr><td><strong>LTV</strong></td><td>Lifetime Value · 用户生命周期总价值</td></tr>
<tr><td><strong>CAC</strong></td><td>Customer Acquisition Cost · 获客成本</td></tr>
<tr><td><strong>Payback Period</strong></td><td>回本周期 = CAC / 日均(或月均)收入</td></tr>
<tr><td><strong>Retention</strong></td><td>留存:次留、3 留、7 留、30 留⋯</td></tr>
</tbody>
</table>
</div>
<p>健康的业务要求 <code>LTV / CAC ≥ 3</code>,Payback 最好在 6–12 个月内。</p>
<h3>3.4 eCPM:把所有计费方式统一的"尺子"</h3>
<p><strong>eCPM(Effective CPM,有效千次展示收益)</strong> 是整个广告行业的"通用货币"。无论广告主按哪种方式计费,平台都会折算成 eCPM 来排序分发。</p>
<div class="callout formula">
<div class="label">eCPM 核心公式</div>
<div class="eq">eCPM = 收益 / 曝光 × 1000</div>
</div>
<div class="tbl-wrap">
<table>
<thead><tr><th>计费方式</th><th>eCPM 换算</th></tr></thead>
<tbody>
<tr><td><strong>CPM</strong></td><td><code>eCPM = CPM 出价</code></td></tr>
<tr><td><strong>CPC</strong></td><td><code>eCPM = CPC 出价 × pCTR × 1000</code></td></tr>
<tr><td><strong>CPA</strong></td><td><code>eCPM = CPA 出价 × pCTR × pCVR × 1000</code></td></tr>
<tr><td><strong>CPS</strong></td><td><code>eCPM = 客单价 × 分成率 × pCTR × pCVR × 1000</code></td></tr>
</tbody>
</table>
</div>
<p>其中 <code>pCTR</code> 与 <code>pCVR</code> 是平台模型<strong>实时预估</strong>的点击率和转化率。一旦都折算成 eCPM,平台就可以统一比较——<strong>eCPM 高者赢得曝光</strong>。</p>
<p>参考:<a href="https://www.woshipm.com/operate/5488500.html" target="_blank">人人都是产品经理 · oCPM 与 oCPC</a>、<a href="https://cloud.tencent.com/developer/article/2588912" target="_blank">腾讯云 · eCPM 与 CPM</a>。</p>
</section>
<!-- Chapter 4 -->
<section id="ch4">
<div class="chap-num">Chapter 04</div>
<h2 class="serif">竞价与计费机制</h2>
<h3>4.1 从 CPM 到 oCPX 的演化</h3>
<p>早期广告都是<strong>固定 CPM/CPC</strong>,但会遇到两个问题:广告主不会估点击率/转化率,出价总偏离真实价值;平台流量质量参差,一刀切出价导致好流量浪费、差流量超成本。</p>
<p>于是出现了 <strong>oCPX(Optimized CPX,优化出价)</strong>:广告主只设"想要的行为 + 愿意付的成本",<strong>平台用模型预估 pCTR × pCVR,实时替广告主动态调价</strong>。</p>
<div class="tbl-wrap">
<table>
<thead><tr><th>出价模式</th><th>广告主设置</th><th>计费口径</th><th>优化口径</th></tr></thead>
<tbody>
<tr><td>CPM</td><td>千次曝光价</td><td>曝光</td><td>无</td></tr>
<tr><td>CPC</td><td>单次点击价</td><td>点击</td><td>无</td></tr>
<tr><td><strong>oCPC</strong></td><td>目标 CPA</td><td>点击</td><td>转化</td></tr>
<tr><td><strong>oCPM</strong></td><td>目标 CPA</td><td><strong>曝光</strong></td><td>转化</td></tr>
<tr><td><strong>oCPA</strong></td><td>目标 CPA</td><td>转化</td><td>转化</td></tr>
<tr><td>tCPA <span style="color:var(--ink-faint)">Google</span></td><td>目标 CPA</td><td>转化</td><td>转化</td></tr>
<tr><td>tROAS <span style="color:var(--ink-faint)">Google/Meta</span></td><td>目标 ROAS</td><td>转化</td><td>收入</td></tr>
<tr><td>Nobid / Max Conv.</td><td>只给预算</td><td>曝光或点击</td><td>花完预算下尽量多转化</td></tr>
</tbody>
</table>
</div>
<div class="callout">
<div class="label">关键洞察</div>
<strong>oCPM ≠ 按 CPM 计费的传统广告。</strong>它是<strong>按曝光计费、按转化优化</strong>——系统会在每次曝光机会上,根据该用户的预估转化价值<strong>动态改变出价</strong>。
</div>
<h3>4.2 双出价(Dual Bidding)</h3>
<p>当广告主在意<strong>后端深度转化</strong>(付费、次留、ROI),而非前端浅层行为(激活、加粉),就需要双出价:</p>
<div class="callout formula">
<div class="label">双出价原理</div>
<div class="eq">浅层出价 / 深层出价 ≈ 目标深度转化率</div>
</div>
<p>例:游戏广告主设 <strong>激活 20 元 + 首次付费 200 元</strong> → 目标付费率 = 10%。字节穿山甲最早把双出价作为"杀手锏",现已成为巨量、腾讯、百度的标配(参考 <a href="https://www.woshipm.com/marketing/3700878.html" target="_blank">人人都是产品经理 · 穿山甲付费双出价</a>)。</p>
<h3>4.3 广义第二价格拍卖(GSP)</h3>
<p>主流平台(Google 搜索、Meta、字节、腾讯)都采用 <strong>GSP</strong>:<strong>出价最高者赢,但按第二名出价 + 0.01 计费</strong>。</p>
<p>这样设计的好处:激励广告主出真实估价;同时激励平台挑 eCPM 最高的广告,促进质量提升。</p>
<div class="tbl-wrap">
<table>
<thead><tr><th>平台</th><th>排序公式(简化)</th></tr></thead>
<tbody>
<tr><td><strong>Google Ads</strong></td><td><code>Ad Rank = Bid × Quality Score</code></td></tr>
<tr><td><strong>Meta Ads</strong></td><td><code>Total Value = (Bid × Est. Action Rates) + User Value</code></td></tr>
<tr><td><strong>字节巨量 / oCPM</strong></td><td><code>eCPM = Bid × pCTR × pCVR × 智能调控因子</code></td></tr>
</tbody>
</table>
</div>
<p>参考:<a href="https://cn.byo.media/the-hidden-bidding-theory-in-digital-media/" target="_blank">BYO Media · GSP 讲解</a>、<a href="https://disruptivedigital.agency/demystifying-the-meta-auction-how-to-win-more-ad-placements-on-facebook-and-instagram/" target="_blank">Disruptive Digital · Meta Auction</a>。</p>
</section>
<!-- Chapter 5 -->
<section id="ch5">
<div class="chap-num">Chapter 05</div>
<h2 class="serif">指标之间的关系</h2>
<p class="intro-lede">把所有公式串起来,你会看到整个广告系统的数学骨架。</p>
<h3>5.1 漏斗关系</h3>
<div class="funnel">
<div class="step"><div class="label">Impression</div><div class="value">曝光</div></div>
<div class="arrow">→ CTR</div>
<div class="step"><div class="label">Click</div><div class="value">点击</div></div>
<div class="arrow">→ CVR</div>
</div>
<div class="funnel">
<div class="step"><div class="label">Click</div><div class="value">点击</div></div>
<div class="arrow">→ CVR</div>
<div class="step"><div class="label">Conversion</div><div class="value">转化</div></div>
<div class="arrow">→ ARPPU</div>
<div class="step"><div class="label">Revenue</div><div class="value">收入</div></div>
</div>
<div class="callout formula">
<div class="label">基本恒等式</div>
<div class="eq">CPM = CPC × CTR × 1000<br>
CPA = CPC / CVR = CPM / (CTR × CVR × 1000)</div>
</div>
<h3>5.2 eCPM 统一排序</h3>
<div class="callout formula">
<div class="label">分发排序公式</div>
<div class="eq">eCPM = Bid × pCTR × pCVR × 1000</div>
</div>
<p>广告主想多拿量,<strong>只有三条路</strong>:</p>
<ol>
<li><strong>提高出价 Bid</strong>——直接烧钱,短期有效;</li>
<li><strong>提高 pCTR</strong>——优化素材、标题、人群定向;</li>
<li><strong>提高 pCVR</strong>——优化落地页、转化流程、回传深度数据。</li>
</ol>
<h3>5.3 广告主 ROI 恒等式</h3>
<div class="callout formula">
<div class="eq">ROAS = LTV / CPA</div>
</div>
<p>只要 <code>CPA < LTV</code>,投放就有利可图;这是所有 oCPA / tCPA / tROAS 策略的根本出发点。</p>
<h3>5.4 媒体每次请求的收益</h3>
<div class="callout formula">
<div class="eq">RPM = 填充率 × 中选 eCPM</div>
</div>
<p>媒体要同时优化<strong>填充率</strong>(广告卖得出去)、<strong>eCPM 水位</strong>(广告卖得贵)、并控制<strong>广告负载</strong>(Ad Load,避免伤害用户体验)。这三者相互制约。</p>
</section>
<!-- Chapter 6 -->
<section id="ch6">
<div class="chap-num">Chapter 06</div>
<h2 class="serif">四家对比 · 字节 / 小红书 / Meta / Google</h2>
<p class="intro-lede">同样的底层逻辑,不同的产品命名与侧重点。看懂四家,基本看懂了行业主流。</p>
<div class="company-grid">
<!-- 字节 -->
<div class="company-card byte">
<h3>字节系 · 巨量引擎 + 穿山甲 <span class="en">Ocean Engine + Pangle</span></h3>
<h4>产品矩阵</h4>
<ul>
<li><strong>巨量引擎</strong>——字节商业化总平台,覆盖抖音、今日头条、西瓜、番茄。</li>
<li><strong>巨量千川</strong>——抖音电商投放平台。</li>
<li><strong>穿山甲 Pangle</strong>——ADX + 广告联盟,聚合外部 App 流量 + 字节自有流量。</li>
<li><strong>巨量云图 / 星图</strong>——人群资产管理 + 达人营销平台。</li>
</ul>
<h4>主推出价产品</h4>
<ul>
<li><strong>oCPM</strong>(最核心):按曝光计费、按转化优化。</li>
<li><strong>双出价</strong>:浅层(激活)+ 深层(付费/次留),行业首创并大规模应用。</li>
<li><strong>Nobid / 最大转化投放</strong>:只设预算不设出价,系统从低到高探索能曝光的出价,目标是把预算花完、成本最低(<a href="https://www.tui39.com/jd/5192.html" target="_blank">抖音广告官方</a>)。</li>
<li><strong>RTA(Real-Time API)</strong>:让广告主通过 API 实时参与每次曝光的出价决策。</li>
</ul>
<h4>常见内部指标</h4>
<ul>
<li>eCPM / 千次消耗水位</li>
<li>转化成本、<strong>超成本率</strong>、跑量率</li>
<li><strong>学习期通过率</strong>(新计划能否度过 20 转化冷启动)</li>
<li>优化师 ARPU = 消耗 / 计划数</li>
<li>生态指标:负反馈率、举报率、体验分</li>
</ul>
</div>
<!-- 小红书 -->
<div class="company-card red">
<h3>小红书 · 聚光 + 蒲公英 <span class="en">Juguang + Pugongying</span></h3>
<p>商业化关键词是<strong>"种草"</strong>——不像电商平台直接成交,而是通过 KOL 笔记影响消费决策。</p>
<h4>产品矩阵</h4>
<ul>
<li><strong>聚光平台</strong>——竞价效果广告,支持信息流、搜索、视频流。</li>
<li><strong>蒲公英</strong>——品牌 × 达人合作中台,报备笔记必须通过它。</li>
<li><strong>乘风</strong>——偏电商后链路。</li>
<li><strong>灵犀</strong>——市场洞察,供品牌做人群与赛道分析。</li>
<li><strong>小红星 / 小红盟</strong>——站外归因,衡量跳出后的阿里/私域转化。</li>
</ul>
<h4>主推出价 & 打法</h4>
<ul>
<li>CPC(搜索)、CPM(信息流)、oCPC / oCPM(智能出价)。</li>
<li><strong>KFS 组合</strong>:KOL 种草 + Feeds 信息流放大 + Search 搜索承接(<a href="https://www.digitaling.com/articles/1054031.html" target="_blank">数英 · 小红书 WILL 大会</a>)。</li>
</ul>
<h4>特色指标</h4>
<ul>
<li><strong>CPE = 费用 / (赞+藏+评)</strong>——小红书最核心的内容质量指标;互动 = 用户用"社交货币"投票(<a href="https://www.woshipm.com/share/6183498.html" target="_blank">CPE 与 UV 成本解读</a>)。</li>
<li>CPM、CPC、CTR——通用指标;大盘 CTR ≈ 10%(<a href="https://www.digitaling.com/articles/1048830.html" target="_blank">数英 · 小红书投放</a>)。</li>
<li><strong>种草值 TrueInterest</strong>——小红书官方衡量种草效果的专属指标,整合阅读、搜索、互动、后链路加购。</li>
<li><strong>人群渗透率 / 内容渗透率 / 搜索指标变化</strong>——站内种草效果三件套。</li>
<li><strong>UV 成本 = 费用 / 独立用户数</strong>——近年被品牌用来替代纯 CPM 考核。</li>
</ul>
</div>
<!-- Meta -->
<div class="company-card meta">
<h3>Meta · Facebook & Instagram</h3>
<h4>产品矩阵</h4>
<ul>
<li><strong>Ads Manager</strong>——投放主系统。</li>
<li><strong>Advantage+ 系列</strong>(核心趋势)——AI 驱动自动化,含 Advantage+ Audience / Placements / Shopping Campaigns,最小化人工干预。</li>
<li><strong>CAPI(Conversions API)</strong>——服务端回传转化数据,弥补浏览器追踪限制(iOS ATT 后尤为关键)。</li>
<li><strong>Lift Studies</strong>——通过对照组衡量广告的增量价值。</li>
</ul>
<h4>竞价公式</h4>
<div class="callout formula" style="margin:12px 0;">
<div class="eq" style="font-size:14px;">Total Value = (Advertiser Bid × Estimated Action Rates) + User Value</div>
</div>
<p style="font-size:14px;color:var(--ink-dim);">其中 User Value(1–10)综合广告质量、用户预期反馈、相关性。</p>
<h4>出价策略</h4>
<ul>
<li><strong>Lowest Cost</strong>(默认)——在预算内尽量多转化。</li>
<li><strong>Cost Cap</strong>——目标 CPA 上限。</li>
<li><strong>Bid Cap</strong>——每次出价上限。</li>
<li><strong>Minimum ROAS</strong>——最低 ROAS 门槛。</li>
</ul>
<h4>常见指标</h4>
<p>CTR、CPM、CPC、CPR(Cost per Result)、<strong>Quality / Engagement / Conversion Ranking</strong>(三档:低于平均、平均、高于平均)。</p>
</div>
<!-- Google -->
<div class="company-card google">
<h3>Google · Ads / DV360 / AdSense</h3>
<h4>产品矩阵</h4>
<ul>
<li><strong>Google Ads</strong>——搜索、展示、购物、YouTube、Performance Max。</li>
<li><strong>DV360</strong>——企业级 DSP,跨 ADX 投放。</li>
<li><strong>AdSense / AdMob</strong>——媒体端变现,让网站 / App 卖广告位。</li>
</ul>
<h4>Ad Rank 公式</h4>
<div class="callout formula" style="margin:12px 0;">
<div class="eq" style="font-size:14px;">Ad Rank = Bid × Quality Score + Ad Extensions 影响 + Context</div>
</div>
<p style="font-size:14px;color:var(--ink-dim);">Quality Score(1–10)= 预期点击率 + 广告相关性 + 着陆页体验。</p>
<h4>Smart Bidding 策略</h4>
<ul>
<li>Maximize Clicks、Maximize Conversions、Maximize Conversion Value</li>
<li><strong>tCPA / tROAS</strong>——已并入 Max Conversions / Max Conversion Value 作为子选项(<a href="https://www.wordstream.com/blog/ws/2021/03/31/google-retiring-tcpa-troas" target="_blank">WordStream</a>)。</li>
<li><strong>Performance Max</strong>——跨所有 Google 库存(搜索、Display、YouTube、Gmail、Discover、Maps)的全自动化产品。</li>
</ul>
</div>
</div>
<h3>横向对比</h3>
<div class="tbl-wrap">
<table>
<thead><tr><th>维度</th><th>字节</th><th>小红书</th><th>Meta</th><th>Google</th></tr></thead>
<tbody>
<tr>
<td>核心产品</td>
<td>oCPM + 双出价 + Nobid</td>
<td>oCPC/oCPM + KFS</td>
<td>Advantage+ / Lowest Cost</td>
<td>Performance Max / tCPA / tROAS</td>
</tr>
<tr>
<td>拍卖机制</td>
<td>GSP (eCPM 排序)</td>
<td>GSP</td>
<td>GSP,Total Value 公式</td>
<td>GSP + Quality Score</td>
</tr>
<tr>
<td>独有指标</td>
<td>学习期、超成本赔付</td>
<td>CPE、种草值、渗透率</td>
<td>Quality/Engagement/Conversion Ranking</td>
<td>Quality Score、Ad Rank</td>
</tr>
<tr>
<td>归因方案</td>
<td>RTA + 深度回传</td>
<td>小红星、小红盟</td>
<td>CAPI + Lift Studies</td>
<td>GA4 + 增强型转化</td>
</tr>
<tr>
<td>定位</td>
<td>效果为王,快速起量</td>
<td>种草心智,品效兼顾</td>
<td>大数据推荐,全漏斗</td>
<td>搜索意图 + 全域分发</td>
</tr>
</tbody>
</table>
</div>
</section>
<!-- Chapter 7 -->
<section id="ch7">
<div class="chap-num">Chapter 07</div>
<h2 class="serif">平台内部如何定义指标</h2>
<p class="intro-lede">广告平台对内会有一套更细的指标体系,覆盖商业收入、生态健康、算法效果、广告主满意度。</p>
<h3>7.1 收入侧</h3>
<ul>
<li><strong>Ad Revenue / Net Ad Revenue</strong>——毛收入 / 扣除流量分成后的净收入。</li>
<li><strong>eCPM 水位</strong>——每千次曝光的平均收益;分<strong>请求 eCPM</strong>与<strong>展示 eCPM</strong>。</li>
<li><strong>Fill Rate(填充率)</strong>——成功曝光的广告请求 / 总广告请求。</li>
<li><strong>Ad Load(广告负载率)</strong>——广告曝光 / 总曝光(抖音大约每 6 刷 1 广告 ≈ 17%)。</li>
<li><strong>广告 ARPU = 广告收入 / DAU</strong>——最常用的北极星指标之一。</li>
</ul>
<h3>7.2 效果与算法侧</h3>
<ul>
<li><strong>pCTR / pCVR 的 AUC、NE、Calibration</strong>——算法模型的预估准确度。</li>
<li><strong>GSP 偏差 / 系统超价率</strong>——实际计费 vs. 模型预估的偏离。</li>
<li><strong>学习期通过率、冷启成功率</strong>——新计划能否在 20 转化内稳定投放。</li>
<li><strong>超成本率、超成本金额</strong>——实际 CPA > 目标 CPA 的计划占比;超成本一定比例平台要赔付。</li>
<li><strong>Incrementality / Lift</strong>——去掉广告后转化会减少多少。衡量"广告是不是真的有增量,还是本来就会转化"。</li>
</ul>
<h3>7.3 生态健康</h3>
<ul>
<li>负反馈率——用户点"不感兴趣 / 举报"的比例</li>
<li>举报 / 投诉率、落地页跳失率、落地页 5 秒跳出率</li>
<li><strong>广告体验分</strong>——综合上述信号的单一分数,作为广告准入门槛</li>
<li>头部广告主消耗占比——避免大客户垄断流量</li>
</ul>
<h3>7.4 广告主侧</h3>
<ul>
<li>广告主 7 日留存 / 28 日留存(再次投放率)</li>
<li>平均单计划消耗、优化师 ARPU(衡量代运营效率)</li>
<li>广告主 NPS / 满意度</li>
</ul>
</section>
<!-- Chapter 8 -->
<section id="ch8">
<div class="chap-num">Chapter 08</div>
<h2 class="serif">术语速查表</h2>
<div class="tbl-wrap">
<table>
<thead><tr><th>缩写</th><th>展开</th><th>一句话解释</th></tr></thead>
<tbody>
<tr><td>CPT</td><td>Cost Per Time</td><td>按时间买断</td></tr>
<tr><td>CPM</td><td>Cost Per Mille</td><td>千次曝光成本</td></tr>
<tr><td>CPC</td><td>Cost Per Click</td><td>每次点击成本</td></tr>
<tr><td>CPA</td><td>Cost Per Action</td><td>每次目标行为成本</td></tr>
<tr><td>CPI</td><td>Cost Per Install</td><td>每次安装成本</td></tr>
<tr><td>CPS</td><td>Cost Per Sale</td><td>每次成交成本</td></tr>
<tr><td>CPL</td><td>Cost Per Lead</td><td>每次留资成本</td></tr>
<tr><td>CPE</td><td>Cost Per Engagement</td><td>每次互动成本</td></tr>
<tr><td>eCPM</td><td>Effective CPM</td><td>折算后的千次曝光收益,行业"通用货币"</td></tr>
<tr><td>oCPM/oCPC/oCPA</td><td>Optimized CPX</td><td>以转化为目标、动态调整出价的智能出价</td></tr>
<tr><td>tCPA / tROAS</td><td>Target CPA / ROAS</td><td>Google 的智能出价目标</td></tr>
<tr><td>Nobid</td><td>—</td><td>只设预算,系统探索最佳出价</td></tr>
<tr><td>CTR</td><td>Click-Through Rate</td><td>点击率</td></tr>
<tr><td>CVR</td><td>Conversion Rate</td><td>转化率</td></tr>
<tr><td>pCTR / pCVR</td><td>Predicted CTR/CVR</td><td>模型预估点击/转化率</td></tr>
<tr><td>ROI / ROAS</td><td>Return on Investment / Ad Spend</td><td>投资回报 / 广告花费回报</td></tr>
<tr><td>ARPU / ARPPU</td><td>Avg Revenue Per User / Paying User</td><td>人均 / 付费人均收入</td></tr>
<tr><td>LTV</td><td>Lifetime Value</td><td>用户生命周期价值</td></tr>
<tr><td>CAC</td><td>Customer Acquisition Cost</td><td>获客成本</td></tr>
<tr><td>DSP / SSP / ADX</td><td>Demand/Supply-Side Platform / Ad Exchange</td><td>程序化广告三大角色</td></tr>
<tr><td>DMP / CDP</td><td>Data Mgmt / Customer Data Platform</td><td>人群数据管理</td></tr>
<tr><td>RTB</td><td>Real-Time Bidding</td><td>实时竞价</td></tr>
<tr><td>GSP</td><td>Generalized Second-Price</td><td>广义第二价格拍卖</td></tr>
<tr><td>GD</td><td>Guaranteed Delivery</td><td>合约保量</td></tr>
<tr><td>RTA</td><td>Real-Time API</td><td>广告主实时参与决策的 API</td></tr>
<tr><td>CAPI</td><td>Conversions API</td><td>Meta 服务端回传转化的 API</td></tr>
<tr><td>KFS</td><td>KOL + Feeds + Search</td><td>小红书种草投放组合</td></tr>
<tr><td>Ad Load</td><td>—</td><td>广告负载率</td></tr>
<tr><td>Fill Rate</td><td>—</td><td>广告填充率</td></tr>
<tr><td>Incrementality</td><td>—</td><td>广告的增量价值</td></tr>
</tbody>
</table>
</div>
</section>
<!-- References -->
<section id="refs">
<div class="chap-num">References</div>
<h2 class="serif">延伸阅读</h2>
<ul>
<li><a href="https://www.woshipm.com/operate/5488500.html" target="_blank">人人都是产品经理 · 一文读懂 oCPM 和 oCPC</a></li>
<li><a href="https://www.woshipm.com/marketing/3700878.html" target="_blank">人人都是产品经理 · 穿山甲付费双出价</a></li>
<li><a href="https://cloud.tencent.com/developer/article/2588912" target="_blank">腾讯云 · 程序化广告中的 eCPM 与 CPM</a></li>
<li><a href="https://www.tui39.com/jd/5192.html" target="_blank">抖音广告 · Nobid 最大转化投放</a></li>
<li><a href="https://www.digitaling.com/articles/1048830.html" target="_blank">数英 · 小红书投放策略全流程</a></li>
<li><a href="https://www.digitaling.com/articles/1054031.html" target="_blank">数英 · 小红书 3 亿月活与 KFS 打法</a></li>
<li><a href="https://disruptivedigital.agency/demystifying-the-meta-auction-how-to-win-more-ad-placements-on-facebook-and-instagram/" target="_blank">Disruptive Digital · Meta Auction 机制</a></li>
<li><a href="https://www.stackmatix.com/blog/meta-ads-bidding-strategy" target="_blank">Stackmatix · Meta Ads Bidding Strategy 2026</a></li>
<li><a href="https://www.wordstream.com/blog/ws/2021/03/31/google-retiring-tcpa-troas" target="_blank">WordStream · Google tCPA/tROAS 更新</a></li>
<li><a href="https://cn.byo.media/the-hidden-bidding-theory-in-digital-media/" target="_blank">BYO Media · GSP 竞价原理</a></li>
</ul>
</section>
<footer>
<p>本教程 v1 · 2026 年 4 月。面向产品、运营、数据、投放岗新同学。<br>
欢迎反馈补充章节、增加案例、或调整深度。</p>
</footer>
</main>
</div>
<script>
// Active section highlight
const links = document.querySelectorAll('.sidebar a');
const sections = document.querySelectorAll('main section[id]');
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const id = entry.target.id;
links.forEach(l => l.classList.toggle('active', l.getAttribute('href') === '#' + id));
}
});
}, { rootMargin: '-20% 0px -70% 0px' });
sections.forEach(s => observer.observe(s));
</script>
</body>
</html>