地域定向投放策略
地域定向投放策略
概述
地域定向(Geo Targeting)是 Google Ads 中最直接有效的投放优化手段之一。通过精确设定广告展示的地理位置,并针对不同区域调整出价,可以显著降低获客成本、提升转化率。
本文是 GEO 专属投放优化 的实操配套,聚焦 Google Ads 平台的具体操作。
一、地域设置
1. 地域定位层级
Google Ads 支持以下地域粒度:
| 层级 | 示例 | 适用场景 |
|---|---|---|
| 国家 | 中国、美国 | 跨国投放 |
| 省级 | 广东省、加利福尼亚州 | 区域市场测试 |
| 市级 | 广州市、旧金山 | 精准城市投放 |
| 半径 | 某坐标 5km 范围 | 本地商圈/门店 |
| 邮编 | 510000 | 精准到区 |
2. 定位方式
| 方式 | 说明 | 适用场景 |
|---|---|---|
| 兴趣定位 | 用户在目标区域,或对该区域感兴趣 | 旅游、房地产 |
| ** presence 定位** | 用户当前在目标区域 | 本地服务、到店 |
| 兴趣 + presence | 两者取并集 | 默认推荐 |
B2B 建议:使用”兴趣 + presence”,覆盖更多潜在客户。
3. 排除地域
# 通过 API 排除低效区域
def exclude_locations(customer_id, campaign_id, location_ids):
"""排除指定地域"""
operations = []
for loc_id in location_ids:
operation = client.get_type("CampaignCriterionOperation")
criterion = operation.create
criterion.campaign = f"customers/{customer_id}/campaigns/{campaign_id}"
criterion.negative_location.geo_target_constant = (
f"geoTargetConstants/{loc_id}"
)
operations.append(operation)
response = campaign_criterion_service.mutate_campaign_criteria(
customer_id=customer_id,
operations=operations
)
print(f"已排除 {len(response.results)} 个地域")
二、区域出价调整
1. 出价调整原理
地域出价调整(Bid Adjustment)是在基础出价上按区域增减百分比:
实际出价 = 基础出价 × (1 + 区域调整系数)
2. 调整策略矩阵
| 区域表现 | CPA 表现 | 出价调整 | 操作建议 |
|---|---|---|---|
| 高转化低成本 | CPA < 目标 50% | +20% ~ +50% | 加大投放 |
| 高转化高成本 | CPA ≈ 目标 | 0% ~ +10% | 维持优化 |
| 低转化低成本 | CPA 未知 | 0% | 观察测试 |
| 低转化高成本 | CPA > 目标 150% | -20% ~ -30% | 降低出价 |
| 无转化有花费 | CPA = ∞ | -50% 或排除 | 暂停/排除 |
3. 批量设置出价调整
def set_bid_adjustments(customer_id, adjustments):
"""
批量设置地域出价调整
Args:
adjustments: [{location_id, multiplier}, ...]
multiplier: 1.2 = +20%, 0.8 = -20%
"""
operations = []
for adj in adjustments:
operation = client.get_type("CampaignCriterionOperation")
criterion = operation.update
criterion.resource_name = (
f"customers/{customer_id}/campaignCriteria/"
f"{adj['location_id']}"
)
criterion.location.bid_multiplier = adj['multiplier']
# 更新掩码
field_mask = client.get_type("FieldMask")
field_mask.paths.append("location.bid_multiplier")
operation.update_mask.CopyFrom(field_mask)
operations.append(operation)
response = campaign_criterion_service.mutate_campaign_criteria(
customer_id=customer_id,
operations=operations
)
print(f"已更新 {len(response.results)} 个地域出价")
# 示例:S级城市 +20%,C级城市 -30%
adjustments = [
{"location_id": "2151814", "multiplier": 1.2}, # 广州 +20%
{"location_id": "2151845", "multiplier": 1.2}, # 深圳 +20%
{"location_id": "2151830", "multiplier": 1.1}, # 杭州 +10%
{"location_id": "2151874", "multiplier": 0.8}, # 武汉 -20%
{"location_id": "2151730", "multiplier": 0.7}, # 成都 -30%
]
set_bid_adjustments("1234567890", adjustments)
三、地域报告分析
1. 关键指标
| 指标 | 公式 | 意义 |
|---|---|---|
| 区域 CTR | 点击/展示 | 广告在该区域的吸引力 |
| 区域 CPC | 花费/点击 | 该区域的流量成本 |
| 区域转化率 | 转化/点击 | 该区域用户的质量 |
| 区域 CPA | 花费/转化 | 该区域的获客成本 |
| 区域 ROI | 转化价值/花费 | 该区域的投入产出比 |
2. 生成地域报告
def generate_geo_report(customer_id, days=30):
"""生成地域性能报告"""
query = f"""
SELECT
segments.geo_target_city,
segments.geo_target_country,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
metrics.conversions_value,
metrics.average_cpc
FROM campaign
WHERE segments.date DURING LAST_{days}_DAYS
ORDER BY metrics.cost_micros DESC
"""
response = ga_service.search(customer_id=customer_id, query=query)
data = []
for row in response:
m = row.metrics
s = row.segments
clicks = m.clicks
cost = m.cost_micros / 1_000_000
conversions = m.conversions
data.append({
'city_id': s.geo_target_city,
'impressions': m.impressions,
'clicks': clicks,
'cost': cost,
'conversions': conversions,
'conversion_value': m.conversions_value,
'ctr': f"{clicks/m.impressions*100:.2f}%" if m.impressions > 0 else "0%",
'cpc': f"{cost/clicks:.2f}" if clicks > 0 else "0",
'conv_rate': f"{conversions/clicks*100:.2f}%" if clicks > 0 else "0",
'cpa': f"{cost/conversions:.2f}" if conversions > 0 else "∞",
'roi': f"{m.conversions_value/cost:.2f}" if cost > 0 else "0"
})
df = pd.DataFrame(data)
return df
# 生成报告
report = generate_geo_report("1234567890", days=30)
print(report.to_string(index=False))
3. 优化决策树
区域数据分析
│
├── CPA < 目标 50% 且转化数 > 5
│ └── ✅ 提高出价 +20%~+50%,扩大流量
│
├── CPA ≈ 目标 且转化数 > 3
│ └── ⚠️ 维持出价,优化广告文案
│
├── CPA > 目标 150% 且转化数 > 0
│ └── ⬇️ 降低出价 -20%~-30%,观察2周
│
├── 花费 > 200元 且转化数 = 0
│ └── ❌ 暂停该地域或排除
│
└── 展示 > 1000 且点击 = 0
└── ❌ 检查广告文案/落地页,可能不匹配
四、GEO × SEM 协同
协同模型
| 渠道 | 作用 | GEO 联动 |
|---|---|---|
| SEM(广告) | 快速获取地域流量 | 区域出价调整、半径投放 |
| SEO(自然) | 长期积累地域排名 | 地域关键词优化、本地落地页 |
| GEO(地图) | 本地搜索曝光 | Google Business Profile |
数据闭环
SEM 地域报告 → 识别高价值区域
↓
SEO 加大该区域关键词优化
↓
GEO 完善 Google Business Profile
↓
自然流量 + 地图流量增长
↓
降低 SEM 依赖,整体 CPA 下降
五、常见问题
Q: 半径投放精度如何?
Google Ads 半径投放最小 1km,最大 800km。建议:
- 本地服务:3-5km
- 商圈覆盖:5-10km
- 城市覆盖:20-50km
Q: 如何处理”人在A城,搜B城”的情况?
使用”兴趣 + presence”定位方式,可以覆盖:
- 当前在 B 城的用户
- 近期搜索过 B 城相关内容的用户
- 表达过对 B 城感兴趣的用户
Q: 地域出价调整和受众出价调整叠加吗?
是的,两者相乘:
实际出价 = 基础出价 × 地域调整 × 受众调整
例如:地域 +20%,受众 +30%,则实际出价 = 基础 × 1.2 × 1.3 = 基础 × 1.56
相关文档
本板块持续更新中,最后更新:2026-06-29