搜索广告 SEM
搜索广告是"用户主动找你"的广告形式——转化意图最强的渠道。
SEM 工作原理
graph TD
USER[用户搜索关键词] --> AUCTION[Google 广告竞价]
AUCTION --> RANK{Ad Rank 排名}
RANK -->|Ad Rank = 出价 × QS| SHOW[展示广告]
SHOW --> CLICK[用户点击]
CLICK --> LP[落地页 Landing Page]
LP --> CONVERT[转化: 购买/注册/咨询]
QS[Quality Score 质量得分] --> RANK
QS --> REL[广告相关性]
QS --> EXP[落地页体验]
QS --> ECTR[预估点击率]
style USER fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style CONVERT fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
style QS fill:#fff3e0,stroke:#e65100,stroke-width:2px
Quality Score 解析
"""
Quality Score 模拟计算
"""
from dataclasses import dataclass
@dataclass
class AdGroup:
"""广告组"""
keyword: str
ad_text: str
landing_page_url: str
bid: float # 出价(元)
# 质量分三要素 (1-10)
relevance: int = 5 # 广告相关性
landing_exp: int = 5 # 落地页体验
expected_ctr: int = 5 # 预估点击率
@property
def quality_score(self) -> int:
"""质量得分 (1-10)"""
raw = (self.relevance + self.landing_exp + self.expected_ctr) / 3
return max(1, min(10, round(raw)))
@property
def ad_rank(self) -> float:
"""广告排名分数 = 出价 × 质量得分"""
return self.bid * self.quality_score
@property
def actual_cpc(self) -> float:
"""实际 CPC (简化) ≈ 下一位 Ad Rank / 你的 QS + 0.01"""
# 简化:QS 越高,实际花费越低
return self.bid * (6 / self.quality_score)
# 竞价对比
ads = [
AdGroup("python 教程", "零基础学 Python", "example.com/python",
bid=5.0, relevance=9, landing_exp=8, expected_ctr=8),
AdGroup("python 教程", "学编程来这里", "example.com/all",
bid=8.0, relevance=5, landing_exp=4, expected_ctr=5),
AdGroup("python 教程", "Python 速成班", "example.com/python-fast",
bid=6.0, relevance=7, landing_exp=7, expected_ctr=6),
]
print("=== 搜索广告竞价模拟 ===")
print(f"{'广告文案':<16} {'出价':>6} {'QS':>4} {'Ad Rank':>10} {'预估CPC':>10}")
print("-" * 50)
sorted_ads = sorted(ads, key=lambda a: a.ad_rank, reverse=True)
for i, ad in enumerate(sorted_ads, 1):
print(f"#{i} {ad.ad_text:<14} ¥{ad.bid:>5.1f} {ad.quality_score:>4} "
f"{ad.ad_rank:>10.1f} ¥{ad.actual_cpc:>8.2f}")
print("\n关键洞察: 出价最高不一定排第一, QS 才是降低 CPC 的核心")
关键词策略
"""
关键词分类与出价策略
"""
KEYWORD_TYPES = {
"品牌词": {
"示例": ["Nike 官网", "星巴克 外卖"],
"意图": "导航型 — 找特定品牌",
"竞争": "低(你的品牌)",
"CPC": "¥0.5-2",
"CVR": "10-20%",
"策略": "必投,防竞品抢量",
},
"产品词": {
"示例": ["运动鞋 推荐", "咖啡机 哪个好"],
"意图": "商业调研 — 比较产品",
"竞争": "中高",
"CPC": "¥3-10",
"CVR": "3-8%",
"策略": "核心投放,优化落地页",
},
"通用词": {
"示例": ["怎么减肥", "学英语"],
"意图": "信息型 — 寻求知识",
"竞争": "高",
"CPC": "¥5-15",
"CVR": "1-3%",
"策略": "谨慎投放,用内容页承接",
},
"长尾词": {
"示例": ["2024年 500 元以下 蓝牙耳机 推荐"],
"意图": "精准购买 — 细分需求",
"竞争": "低",
"CPC": "¥0.5-3",
"CVR": "5-15%",
"策略": "大量铺设,性价比最高",
},
}
print("=== 关键词分类策略 ===")
for ktype, info in KEYWORD_TYPES.items():
print(f"\n【{ktype}】")
print(f" 示例: {', '.join(info['示例'])}")
print(f" CPC: {info['CPC']} | CVR: {info['CVR']}")
print(f" 策略: {info['策略']}")
匹配类型
| 匹配类型 | 符号 | 示例关键词 | 会匹配到 | 流量 | 精准度 |
|---|---|---|---|---|---|
| 广泛匹配 | 无 | python 教程 | python 学习、编程入门 | 最大 | 最低 |
| 词组匹配 | "..." | "python 教程" | 免费 python 教程 | 中 | 中 |
| 完全匹配 | [...] | [python 教程] | python 教程 | 最小 | 最高 |
广告结构最佳实践
graph TD
ACCOUNT[Google Ads 账户] --> CAMP1[搜索广告系列: 品牌词]
ACCOUNT --> CAMP2[搜索广告系列: 产品词]
ACCOUNT --> CAMP3[搜索广告系列: 长尾词]
CAMP2 --> AG1[广告组: 运动鞋]
CAMP2 --> AG2[广告组: 跑步鞋]
CAMP2 --> AG3[广告组: 篮球鞋]
AG1 --> KW1[关键词 5-15 个]
AG1 --> AD1[广告文案 3-5 条]
AG1 --> LP1[落地页: 运动鞋专题]
style ACCOUNT fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style AG1 fill:#e8f5e9,stroke:#2e7d32
否定关键词
"""
否定关键词管理
"""
NEGATIVE_KEYWORDS = {
"通用排除": ["免费", "下载", "破解", "盗版", "是什么", "百科"],
"B2B 排除": ["个人", "家用", "便宜", "学生"],
"高端品牌排除": ["便宜", "打折", "二手", "仿品", "山寨"],
}
print("=== 否定关键词清单 ===")
for category, keywords in NEGATIVE_KEYWORDS.items():
print(f"\n{category}:")
for kw in keywords:
print(f" - {kw}")
print("\n作用: 排除不相关搜索,节省 15-30% 无效花费")
小结
| 要素 | 说明 |
|---|---|
| Quality Score | 高 QS → 低 CPC + 高排名 |
| 关键词分类 | 品牌/产品/通用/长尾各有策略 |
| 匹配类型 | 从广泛→完全逐步收紧 |
| 否定关键词 | 排除无效流量是必做项 |
| 账户结构 | 按主题分组,每组 5-15 关键词 |
下一章: 社交媒体广告