在竞争激烈的 Amazon 销售世界中,了解竞争对手的广告策略可能意味着盈利增长和浪费广告费之间的区别。Amazon Sponsored Products(品牌推广产品)广告占所有 Amazon 广告收入的 70% 以上,使其成为争夺曝光率和销售额的主要战场。本综合指南将向您展示如何使用 Pangolin 的 Amazon SERP API 来监控竞争对手的广告活动,提取可操作的情报,并根据真实市场数据优化您自己的广告策略。
每天,卖家在 Amazon PPC(按点击付费)广告上花费数百万美元,却往往不知道竞争对手在做什么。他们在竞标您的品牌词吗?他们以哪些关键词为目标?他们花了多少钱?什么样的广告文案转化率最高?这些问题对您的成功至关重要,而答案就隐藏在显眼的地方——Amazon 的搜索结果中。通过系统地跟踪品牌推广产品的展示位置,您可以逆向工程成功的广告策略并避免代价高昂的错误。
为什么要监控竞争对手广告
在深入技术实现之前,让我们了解一下为什么竞争性广告监控如此有价值。这不仅仅是出于好奇——而是为了获得直接影响您底线的战略优势:
发现高转化关键词:当竞争对手持续在特定关键词上投放广告时,他们在告诉你一件重要的事情:该关键词能带来转化。否则他们不会一直在这个关键词上花钱。通过跟踪竞争对手最常竞标的关键词,您可以识别经过验证的高投资回报率关键词,而无需昂贵的试错过程。我见过卖家仅通过关注竞争对手验证过的关键词,就将关键词研究时间缩短了 60%,并将 ACoS(广告销售成本)提高了 25%。
优化您的广告支出:Amazon 上的广告是一场拍卖。如果您知道竞争对手何时大量投放广告(以及何时不投放),就可以相应地调整您的出价。例如,如果您注意到某个主要竞争对手在周末停止投放广告,那就是您以较低成本主导这些搜索结果的机会。相反,如果多个竞争对手在一个关键词上积极竞价,您可能会认为它太贵了,并将预算集中在其他地方。
保护您的品牌:Amazon 卖家最沮丧的经历之一是看到竞争对手在您的品牌名称上投放广告。当有人搜索您的品牌时,您希望您的产品首先出现——而不是竞争对手的。通过监控品牌词广告,您可以快速识别竞争对手何时以您的品牌为目标,并做出适当的反应。一些卖家通过使用数据更具策略性地竞标自己的品牌词,将品牌防御成本降低了 40%。
尽早识别市场趋势:当您看到多个竞争对手突然在新关键词或产品类别上投放广告时,这通常是新兴趋势的信号。也许有一种新的产品类型正在获得关注,或者是一个您未曾考虑过的季节性机会。这种早期预警系统可以帮助您在市场饱和之前调整策略。
现实世界的影响
积极监控竞争对手广告的卖家报告称,3 个月内广告效率提高了 30-50%。更重要的是,他们避免了 Amazon 广告中的头号错误:竞标不转化的关键词。通过跟随已验证的赢家,您可以在加速结果的同时显着降低风险。
了解 Amazon 的广告格局
为了有效地监控竞争对手的广告,您需要了解 Amazon 的广告生态系统是如何运作的。Amazon 提供多种广告类型,但我们将重点关注 Sponsored Products——对大多数卖家来说最常见且通常最有效的格式。
Sponsored Products 与其他广告类型
Sponsored Products (品牌推广产品) 是直接出现在搜索结果和产品页面上的广告,除了有一个小的“Sponsored”标签外,看起来几乎与自然列表相同。这些是按点击付费 (CPC) 广告,意味着您只需在有人点击时付费。它们是 Amazon 广告的主力军,因为它们捕获了积极搜索产品的高意向购物者。
Sponsored Brands (品牌推广) (以前称为头条搜索广告)出现在搜索结果的最顶部,包含您的品牌徽标、自定义标题和多个产品。这些广告更贵,但非常适合品牌知名度。
Sponsored Display (展示型推广) 根据购物者的浏览行为在 Amazon 站内和站外展示广告。这对重定向很有用,但对大多数卖家来说没那么关键。
在本指南中,我们将重点关注 Sponsored Products,因为它们占大多数卖家广告支出的 70-80%,并且最容易使用 SERP 数据进行跟踪和分析。
广告展示位置的工作原理
Amazon 的广告拍卖很复杂,但以下是您需要知道的:当有人搜索关键词时,Amazon 会在竞标该关键词的所有广告商之间进行即时拍卖。获胜者的产品将作为赞助结果显示。拍卖主要考虑两个因素:
1. 您的出价:您愿意为每次点击支付多少费用。出价越高通常意味着位置越好,但这并不是唯一的因素。
2. 广告相关性:Amazon 希望展示可能会转化的广告,因为他们赚钱靠的是销售,而不仅仅是点击。因此,出价较低的高度相关产品可能会击败出价较高的不相关产品。
这就是为什么随着时间的推移跟踪竞争对手的广告位置如此有价值。如果竞争对手一直出现在靠前的位置,说明他们找到了出价和相关性的最佳平衡点。您可以从他们的成功中学习。
使用 API 跟踪 Sponsored Products
现在让我们来点实际的。要系统地跟踪竞争对手的广告,您需要从 Amazon 搜索结果中提取 Sponsored Product 数据。这正是 Pangolin Amazon SERP API 变得无价的地方。您可以自动化整个过程,而不是手动搜索关键词并记录结果。
构建基础广告跟踪器
我们的第一个脚本将搜索一个关键词,识别哪些产品是赞助的,并记录它们的位置。这为您提供了任何时间任何关键词的竞争格局快照。让我们一步步构建它:
import requests
import json
from datetime import datetime
from typing import List, Dict
class SponsoredProductTracker:
"""
跟踪搜索结果中的 Amazon 品牌推广产品 (Sponsored Products)。
该类帮助您监控哪些产品在特定关键词上投放广告,
它们的广告位置,以及竞争格局随时间的变化。
"""
def __init__(self, api_key: str):
"""用 Pangolin API Key 初始化跟踪器"""
self.api_key = api_key
self.endpoint = "https://scrapeapi.pangolinfo.com/api/v1/scrape"
def search_keyword(self, keyword: str, page: int = 1) -> Dict:
"""
搜索关键词并提取包括赞助产品在内的所有产品。
参数:
keyword: 要跟踪的搜索词
page: 获取哪一页的结果 (1-10)
返回:
包含带有赞助产品数据的搜索结果字典
"""
# 构建 Amazon 搜索 URL
url = f"https://www.amazon.com/s?k={keyword.replace(' ', '+')}&page={page}"
headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
payload = {
"url": url,
"parserName": "amzKeyword", # 使用关键词搜索解析器
"format": "json",
"bizContext": {"zipcode": "10041"}
}
try:
response = requests.post(self.endpoint, headers=headers, json=payload, timeout=30)
if response.status_code == 200:
result = response.json()
if result.get('code') == 0:
data = result.get('data', {})
json_data = data.get('json', [{}])[0]
if json_data.get('code') == 0:
return json_data.get('data', {})
return None
except Exception as e:
print(f"Error searching keyword '{keyword}': {str(e)}")
return None
def extract_sponsored_products(self, search_results: Dict) -> List[Dict]:
"""
仅从搜索结果中提取赞助产品。
通过数据中的 'sponsored' 标志识别赞助产品。
我们跟踪它们的位置、ASIN、标题、价格和其他关键指标。
返回:
赞助产品字典列表
"""
if not search_results:
return []
all_products = search_results.get('results', [])
sponsored = []
for position, product in enumerate(all_products, 1):
# 检查这是否为赞助产品
if product.get('sponsored', False) or product.get('isSponsored', False):
sponsored.append({
'position': position,
'asin': product.get('asin'),
'title': product.get('title'),
'price': product.get('price'),
'rating': product.get('star'),
'reviews': product.get('rating'),
'brand': product.get('brand'),
'image': product.get('image'),
'timestamp': datetime.now().isoformat()
})
return sponsored
def track_keyword(self, keyword: str, pages: int = 1) -> Dict:
"""
跨多页完整跟踪关键词。
此方法搜索关键词,提取赞助产品,并返回综合报告。
参数:
keyword: 要跟踪的关键词
pages: 要扫描的页数 (建议 1-5)
返回:
包含跟踪结果和分析的字典
"""
print(f"正在跟踪关键词: '{keyword}'")
all_sponsored = []
for page in range(1, pages + 1):
print(f" 正在扫描第 {page} 页...")
results = self.search_keyword(keyword, page)
if results:
sponsored = self.extract_sponsored_products(results)
all_sponsored.extend(sponsored)
print(f" 在第 {page} 页找到 {len(sponsored)} 个赞助产品")
# 分析结果
unique_asins = set(p['asin'] for p in all_sponsored if p['asin'])
unique_brands = set(p['brand'] for p in all_sponsored if p['brand'])
return {
'keyword': keyword,
'timestamp': datetime.now().isoformat(),
'total_sponsored': len(all_sponsored),
'unique_products': len(unique_asins),
'unique_brands': len(unique_brands),
'sponsored_products': all_sponsored,
'top_advertisers': self._get_top_advertisers(all_sponsored)
}
def _get_top_advertisers(self, sponsored_products: List[Dict]) -> List[Dict]:
"""
识别哪些品牌/卖家广告投放最密集。
返回按广告位数量排序的品牌列表。
"""
brand_counts = {}
for product in sponsored_products:
brand = product.get('brand', 'Unknown')
if brand not in brand_counts:
brand_counts[brand] = {
'brand': brand,
'ad_count': 0,
'asins': set()
}
brand_counts[brand]['ad_count'] += 1
brand_counts[brand]['asins'].add(product.get('asin'))
# 转换为列表并按广告计数排序
top_advertisers = [
{
'brand': data['brand'],
'ad_placements': data['ad_count'],
'unique_products': len(data['asins'])
}
for data in brand_counts.values()
]
top_advertisers.sort(key=lambda x: x['ad_placements'], reverse=True)
return top_advertisers[:10] # 前 10 名
def generate_report(self, tracking_data: Dict):
"""生成格式化的跟踪结果报告"""
print(f"\n{'='*70}")
print(f"赞助产品 (Sponsored Product) 跟踪报告")
print(f"{'='*70}")
print(f"关键词: {tracking_data['keyword']}")
print(f"时间戳: {tracking_data['timestamp']}")
print(f"\n摘要:")
print(f" 总赞助广告位: {tracking_data['total_sponsored']}")
print(f" 广告产品数 (去重): {tracking_data['unique_products']}")
print(f" 广告品牌数 (去重): {tracking_data['unique_brands']}")
print(f"\n顶级广告商:")
for i, advertiser in enumerate(tracking_data['top_advertisers'][:5], 1):
print(f" {i}. {advertiser['brand']}")
print(f" 广告位数量: {advertiser['ad_placements']}")
print(f" 独特产品数: {advertiser['unique_products']}")
print(f"\n前 5 个赞助产品:")
for i, product in enumerate(tracking_data['sponsored_products'][:5], 1):
print(f" {i}. 位置 #{product['position']}")
print(f" {product['title'][:60]}...")
print(f" ASIN: {product['asin']} | 价格: {product['price']}")
print(f" 品牌: {product['brand']}")
print(f"\n{'='*70}\n")
# 示例用法
if __name__ == "__main__":
# 初始化跟踪器
tracker = SponsoredProductTracker("your_api_key_here")
# 跟踪一个关键词
results = tracker.track_keyword("wireless earbuds", pages=2)
# 生成报告
tracker.generate_report(results)
# 保存到文件
with open(f"ad_tracking_{results['keyword'].replace(' ', '_')}.json", 'w') as f:
# 转换集合为列表以便 JSON 序列化
results_copy = results.copy()
# ... (serialization logic)
pass
开始监控您的竞争对手
这只是冰山一角。通过定期运行此监控并构建历史数据库,您可以揭示竞争对手的完整广告策略。
- 注册 Pangolin:免费获取您的 API Key 以运行此代码
- 探索文档:了解如何使用 Webhook 进行实时监控