Amazon DSP (Demand-Side Platform) - платформа programmatic display-рекламы с доступом к Amazon аудиториям и premium inventory. B2B компании используют Amazon DSP для ретаргетинга покупателей с Amazon Business и таргетинга по поведенческим сегментам из Amazon данных (в-market audiences, lifestyle segments). Стандартная метрика Amazon DSP - impressions, clicks, DPV (Detail Page Views), Purchase Rate. Реальный вопрос: сколько закрытых B2B-сделок принесла кампания Amazon DSP, и какой CAC.
Amazon Attribution API позволяет создавать tracking tags для кампаний, запущенных вне Amazon (включая DSP). При клике на объявление пользователь направляется через Amazon Attribution redirect, фиксируя click ID. Prooflytics перехватывает этот параметр, связывает с регистрацией пользователя, и при закрытии сделки в CRM отправляет conversion event обратно в Amazon Advertising API.
Amazon Attribution - инструмент трекинга конверсий для рекламодателей Amazon. Позволяет измерять impact рекламы вне Amazon на продажи на Amazon. В B2B SaaS контексте используется для отслеживания влияния DSP-кампаний на CRM-конверсии.
Техническая архитектура
Amazon DSP кампания: объявление с Amazon Attribution tracking URL
-> Пользователь кликает -> redirect через Amazon Attribution
-> Landing page: ?amzn_ref=XXXXXXXXX (Attribution tag параметр)
-> Prooflytics JS: перехватить amzn_ref + email при регистрации
Prooflytics backend
-> Хранить: {email -> amazon_attribution_tag, campaign_id, timestamp}
Пользователь регистрируется в CRM
-> Prooflytics обогащает лид Amazon Attribution данными
Сделка закрыта (CRM webhook)
-> Prooflytics -> Amazon Advertising API: POST /conversion-event
-> Рассчитать CAC: DSP spend / закрытые сделки
Получение Amazon Attribution Tag
Перед трекингом нужно создать Attribution Tag в Amazon Advertising:
import requests, os
AA_CLIENT_ID = os.environ["AMAZON_ADVERTISING_CLIENT_ID"]
AA_CLIENT_SECRET = os.environ["AMAZON_ADVERTISING_CLIENT_SECRET"]
AA_REFRESH_TOKEN = os.environ["AMAZON_ADVERTISING_REFRESH_TOKEN"]
AA_PROFILE_ID = os.environ["AMAZON_ADVERTISING_PROFILE_ID"]
def get_amazon_access_token() -> str:
r = requests.post(
"https://api.amazon.com/auth/o2/token",
data={
"grant_type": "refresh_token",
"refresh_token": AA_REFRESH_TOKEN,
"client_id": AA_CLIENT_ID,
"client_secret": AA_CLIENT_SECRET,
},
)
return r.json()["access_token"]
AA_BASE = "https://advertising-api.amazon.com"
def get_aa_headers() -> dict:
token = get_amazon_access_token()
return {
"Authorization": f"Bearer {token}",
"Amazon-Advertising-API-ClientId": AA_CLIENT_ID,
"Amazon-Advertising-API-Scope": AA_PROFILE_ID,
"Content-Type": "application/json",
}
def create_attribution_publisher(name: str) -> str:
r = requests.post(
f"{AA_BASE}/attribution/publishers",
headers=get_aa_headers(),
json={"name": name},
)
return r.json().get("publisherId", "")
def create_attribution_tag(publisher_id: str, campaign_name: str, landing_url: str) -> str:
# Создать tracking tag для конкретной кампании
r = requests.post(
f"{AA_BASE}/attribution/tags/macro",
headers=get_aa_headers(),
json={
"publisherId": publisher_id,
"adGroupId": campaign_name,
"creativeId": "creative-001",
"advertiserName": "Your Company",
"landingPageUrl": landing_url,
},
)
data = r.json()
return data.get("tags", [{}])[0].get("tag", "")
Реализация: захват Amazon Attribution на лендинге
Prooflytics JS на лендинге перехватывает параметр Amazon Attribution:
(function() {
var API_KEY = 'YOUR_PROOFLYTICS_KEY';
var API_BASE = 'https://api.prooflytics.io/v1';
// Amazon Attribution использует параметр amzn_ref или кастомный параметр
function getAmazonAttrParam() {
var params = new URLSearchParams(window.location.search);
return params.get('amzn_ref') || params.get('amazon_attr') || params.get('aa_tag') || '';
}
var amazonAttr = getAmazonAttrParam();
if (amazonAttr) {
sessionStorage.setItem('prooflytics_amazon_attr', amazonAttr);
sessionStorage.setItem('prooflytics_amazon_ts', Date.now().toString());
}
window.prooflyticsTrackAmazon = function(email) {
var attr = sessionStorage.getItem('prooflytics_amazon_attr')
|| localStorage.getItem('prooflytics_amazon_attr');
if (!attr || !email) return;
navigator.sendBeacon(
API_BASE + '/attribution/amazon',
JSON.stringify({api_key: API_KEY, email: email, amazon_attr: attr})
);
};
})();
Реализация: отправка конверсии в Amazon Advertising API
import time
from flask import Flask, request, jsonify
app = Flask(__name__)
# in-memory store (в production - Redis/PostgreSQL)
attribution_store = {}
@app.route("/v1/attribution/amazon", methods=["POST"])
def receive_amazon_attribution():
data = request.json or {}
email = data.get("email", "")
amazon_attr = data.get("amazon_attr", "")
if not email or not amazon_attr:
return jsonify({"error": "missing fields"}), 400
attribution_store[email] = {
"amazon_attr": amazon_attr,
"received_at": int(time.time()),
}
return jsonify({"status": "ok"}), 200
def send_amazon_conversion(email: str, deal_value: float, order_id: str):
attr = attribution_store.get(email)
if not attr:
return
hdrs = get_aa_headers()
# Amazon Attribution Conversions API
payload = {
"conversions": [{
"eventType": "PURCHASE",
"timestamp": int(time.time() * 1000),
"orderId": order_id,
"currencyCode": "USD",
"value": deal_value,
"unitsSold": 1,
"conversionDefinitionId": attr["amazon_attr"],
}]
}
requests.post(
f"{AA_BASE}/attribution/conversions",
headers=hdrs,
json=payload,
)
@app.route("/crm/deal-won", methods=["POST"])
def deal_won_webhook():
data = request.json or {}
email = data.get("contact_email", "")
deal_id = data.get("deal_id", "")
deal_value = float(data.get("deal_value", 0))
if email:
send_amazon_conversion(email, deal_value, deal_id)
return jsonify({"status": "ok"}), 200
Amazon DSP в B2B: аудитории и применение
Amazon DSP даёт доступ к аудиториям, недоступным в Google/Meta:
- Amazon Business buyers: покупатели на Amazon Business в вашей категории
- In-market audiences: пользователи, активно ищущие продукты вашей категории
- Lookalike аудитории: аналогичные вашим существующим клиентам
Для B2B SaaS с длинным циклом продаж Amazon DSP особенно эффективен как assist-канал (mid-funnel) - напоминание о продукте аудитории, которая уже взаимодействовала с сайтом или похожа на существующих клиентов.
Что видит маркетолог в Prooflytics
После настройки интеграции Prooflytics покажет:
- Amazon DSP CAC: spend / closed deals с Amazon-атрибуцией
- Assist attribution: сколько закрытых сделок имели touchpoint с Amazon DSP
- Funnel: click -> registration -> qualified lead -> closed deal из DSP
- Comparison: Amazon DSP CAC vs Google Ads CAC vs LinkedIn Ads CAC
Реальный кейс
B2B SaaS, $12 000/мес бюджет Amazon DSP. Стандартные Amazon DSP метрики показывали ROAS 3.2x (по DPV). После интеграции с Prooflytics: из 890 кликов через Attribution только 7 стали закрытыми сделками. CAC = $1 714 vs $890 по Google Ads. Перераспределили бюджет: уменьшили Amazon DSP на $4k, увеличили LinkedIn (лучший CAC для их ICP).
Для кого актуально
Enterprise-oriented B2B SaaS с бюджетом $5k+/мес на DSP и длинным циклом продаж. Amazon DSP наиболее эффективен для компаний, чьи клиенты покупают на Amazon Business (software, hardware, office supplies смежного сегмента).
Аналогичный подход описан для Prooflytics + Criteo и Prooflytics + The Trade Desk типа DSP-платформ.
Часто задаваемые вопросы
Нужно ли быть продавцом на Amazon чтобы использовать Amazon DSP?
Нет. Amazon DSP available для рекламодателей не продающих на Amazon (non-endemic). B2B SaaS может использовать DSP для таргетинга Amazon аудитории без наличия листинга на Amazon. Для non-endemic рекламодателей некоторые функции Attribution могут быть ограничены - уточняйте у Amazon Account Manager.
Как работает Amazon Attribution для кампаний, запущенных не через Amazon?
Amazon Attribution предоставляет tracking URL с уникальным тегом. Этот URL используется как destination в ваших кампаниях в Google Ads, LinkedIn, или в Amazon DSP. При переходе Amazon фиксирует click и отслеживает последующие конверсии на Amazon. Для B2B SaaS (не продающих на Amazon) используется Amazon Advertising Conversions API для отправки off-Amazon конверсий.
Минимальный бюджет для Amazon DSP?
Managed Service (через Amazon Advertising team): минимум $35 000/месяц. Self-Service через DSP Console: минимум зависит от региона, обычно $10 000-15 000/месяц. Для команд с меньшим бюджетом - Amazon Attribution можно использовать только как трекинг для других каналов.
Итог
Prooflytics + Amazon DSP - атрибуция display-рекламы до закрытой сделки:
- Amazon Attribution tracking URL -> параметр
amzn_refна лендинге - JS: перехват
amzn_ref+ email при регистрации -> Prooflytics API - Amazon Advertising API: OAuth2 Refresh Token для получения access token
- При closed_won в CRM:
POST /attribution/conversionsс deal value - Дашборд: Amazon DSP CAC vs других каналов, assist attribution
Если хотите видеть реальный ROI Amazon DSP кампаний до закрытой сделки - обратитесь к команде Prooflytics.