Когда пользователь переходит со страницы оформления заказа на страницу благодарности (thank-you page), идентификатор заказа иногда теряется и не отправляется в Affise через пиксель постбэка. Поскольку рекламодатели требуют идентификатор заказа для утверждения транзакций или конверсий, отсутствие идентификаторов приводит к потере дохода. Эта проблема возникает, когда Shopify использует сторонний платежный шлюз и идентификатор заказа может не передаваться на страницу благодарности.
В таком случае вы можете использовать Shopify Pixel. В этом руководстве описан самый новый и надежный способ интеграции вашего магазина Shopify с платформой Affise с помощью Affise Web SDK. Соединив эти две системы, вы сможете точно отслеживать конверсии, приписывать продажи правильным партнерским каналам и оптимизировать эффективность кампаний — и все это без использования устаревших методов отслеживания.
Shopify изменил принцип работы отслеживания
Shopify отказался от устаревших настроек отслеживания, таких как вставка кода в theme.liquid файл или использование раздела Дополнительные скрипты в настройках оформления заказа. Единственный поддерживаемый и перспективный метод — это Shopify Customer Events, который позволяет отслеживать активность магазина с помощью безопасных и структурированных потоков событий.
Это руководство соответствует официальному подходу, рекомендованному Shopify.
Основные преимущества использования этой интеграции:
Точное отслеживание конверсий: получайте точную атрибуцию продаж, привлеченных аффилиатами, прямо в отчетах Affise.
Полная совместимость и безопасность: создано в соответствии с последними стандартами Shopify в области производительности, конфиденциальности и безопасности.
Простота управления: вся ваша логика отслеживания находится в одном месте — в панели администратора Shopify.
Прежде чем начать, убедитесь, что у вас есть:
Активный аккаунт администратора Affise.
Магазин Shopify с доступом администратора.
Шаги по интеграции (через Customer Events)
Для настройки интеграции используется функция Shopify Custom Pixels. Это позволяет отслеживать такие события, как “Add to cart” или “Checkout completed”, и передавать данные о конверсии в Affise с помощью Web SDK.
Шаг 1. Получите код отслеживания SDK
В дашборде Affise перейдите в раздел Офферы > Постбэки > Web SDK.
Скопируйте шаблон скрипта.
Этот код будет адаптирован для вашего магазина Shopify с помощью событий клиентов.
🔎 В этом руководстве мы используем настраиваемый скрипт, который отслеживает событие product_added_to_cart.
Шаг 2. Добавьте настраиваемый пиксель в Shopify
В админке Shopify перейдите в Settings > Customer Events.
Нажмите Add custom pixel.
Шаг 3. Вставьте код интеграции
Дайте пикселю имя (например, Affise Conversion Tracker).
Нажмите Add Pixel, чтобы открыть редактор кода.
Замените шаблонный текст следующим скриптом:
// Step 1: Load the Affise Web SDK
// This should be placed in your Shopify Customer Events pixel configuration.
const script = document.createElement('script');
// Important: Replace YOUR_DOMAIN with your actual Affise tracking domain.
script.src = 'https://YOUR_DOMAIN/websdk.js';
script.async = true;
document.head.appendChild(script);
// Step 2: Once the SDK is loaded, set up the event listeners
script.onload = () => {
// A. Track the initial click and store the Offer ID
// This event fires on page loads where URL parameters from affiliates are present.
analytics.subscribe('page_viewed', (event) => {
const url = new URL(event.context.document.location.href);
const offerId = url.searchParams.get('offer_id');
const affiliateId = url.searchParams.get('pid'); // 'pid' is the standard parameter for affiliate_id
// Only generate a click if the required params from the tracking link are present.
if (offerId && affiliateId) {
ASDK.click({
offer_id: offerId,
affiliate_id: affiliateId
})
.then(() => {
// Store the offerId so we can retrieve it on subsequent events
sessionStorage.setItem('affise_offer_id_for_conversion', offerId);
})
.catch(error => {
console.error('Affise SDK: Error tracking click:', error);
});
}
});
// B. Track a conversion when a product is added to the cart
// NOTE: This is an example. For sales tracking, use the 'checkout_completed' event.
analytics.subscribe('product_added_to_cart', (event) => {
const cartLine = event.data.cartLine;
// Retrieve the Offer ID that we stored when the click was tracked
const offerId = sessionStorage.getItem('affise_offer_id_for_conversion');
if (!offerId) {
// If there's no offerId, we can't track the conversion.
// This is expected if the user started their session without an affiliate link.
return;
}
// Get the click_id associated with this offer
const clickId = ASDK.clickId(offerId);
if (!clickId) {
// No clickId found for this offer, so we can't attribute the conversion.
return;
}
// When a product is added to the cart, send the conversion data to Affise
ASDK.conversion({
click_id: clickId,
offer_id: offerId,
status: '1', // 1 = confirmed
sum: cartLine.cost.totalAmount.amount,
order_currency: cartLine.cost.totalAmount.currencyCode,
comment: `Product Added to Cart: ${cartLine.merchandise.title}`
})
.catch(error => {
console.error('Affise SDK: Error tracking conversion:', error);
});
});
};
Как это работает:
Отслеживает клики и конверсии: скрипт отслеживает два отдельных события. Сначала он фиксирует
offer_idиpid(ID аффлиата) из трекинг ссылки на любой просмотр страницы, чтобы сгенерировать клик. Затем он использует эту информацию о клике, чтобы приписать конверсию, когда происходит событиеproduct_added_to_cart. Для правильной работы скриптаoffer_idиpidдолжны присутствовать в трекинг URL, который ведет к магазину Shopify. Это обеспечивает непрерывное отслеживание даже в браузерах, которые не поддерживают сторонние файлы cookie, таких как Safari.Динамический идентификатор оффера: скрипт автоматически находит
offer_idиз URL-адреса, сохраняет его в сессии пользователя и использует для запуска конверсии, поэтому вам не нужно прописывать какие-либо идентификаторы.Отслеживание на основе событий: в этом примере используется
product_added_to_cart. Чтобы отслеживать фактическую выручку от продаж, вам просто нужно изменить это событие наcheckout_completedи настроить параметры в соответствии со структурой данных этого события.
🔎 Shopify поддерживает широкий спектр событий. Полный список можно посмотреть здесь. Вы также можете расширить свое отслеживание пользовательскими значениями, такими как SKU, валюта и идентификаторы продуктов.
Шаг 4. Сохраните и активируйте свой пиксель
В правом верхнем углу редактора пикселей нажмите Save.
Перейдите в Settings > Customer Events.
Нажмите Connect рядом с вновь созданным пикселем.
Тестирование интеграции
Перед запуском важно убедиться, что все работает правильно. Для этого выполните следующие действия:
Сгенерируйте трекинг ссылку в дэшборде Affise на превью оффера.
Посетите свой магазин Shopify, используя эту ссылку (это установит идентификатор клика).
Запустите тестовое событие (например, добавьте товар в корзину).
Проверьте раздел Статистика > Конверсии в своем аккаунте Affise, чтобы увидеть, была ли зарегистрирована конверсия. Если конверсия по какой-то причине не отображается, вы можете проверить раздел Статистика > Серверный постбэк, чтобы выяснить причину проблемы.
Если вы видите конверсию в Affise, все готово.
🔎 Советы по устранению неполадок:
Убедитесь, что вы правильно ввели трекинг домен и ID оффера.
Используйте консоль браузера, чтобы проверить
event.dataправильно ли она построена.Проведите тестирование в окне инкогнито с отключенными всеми расширениями браузера.
Если вам нужна помощь, обратитесь по адресу [email protected].
По всем возникшим вопросам обращайтесь в службу поддержки Affise по электронной почте: [email protected].


