К основному содержимому

Shopify Pixel Web SDK

Автор: Daria Mamchenkova

Когда пользователь переходит со страницы оформления заказа на страницу благодарности (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

  1. В дашборде Affise перейдите в раздел Офферы > Постбэки > Web SDK.

  2. Скопируйте шаблон скрипта.

    Этот код будет адаптирован для вашего магазина Shopify с помощью событий клиентов.

🔎 В этом руководстве мы используем настраиваемый скрипт, который отслеживает событие product_added_to_cart.

Шаг 2. Добавьте настраиваемый пиксель в Shopify

  1. В админке Shopify перейдите в Settings > Customer Events.

  2. Нажмите Add custom pixel.

Шаг 3. Вставьте код интеграции

  1. Дайте пикселю имя (например, Affise Conversion Tracker).

  2. Нажмите Add Pixel, чтобы открыть редактор кода.

  3. Замените шаблонный текст следующим скриптом:

// 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. Сохраните и активируйте свой пиксель

  1. В правом верхнем углу редактора пикселей нажмите Save.

  2. Перейдите в Settings > Customer Events.

  3. Нажмите Connect рядом с вновь созданным пикселем.

Тестирование интеграции

Перед запуском важно убедиться, что все работает правильно. Для этого выполните следующие действия:

  1. Сгенерируйте трекинг ссылку в дэшборде Affise на превью оффера.

  2. Посетите свой магазин Shopify, используя эту ссылку (это установит идентификатор клика).

  3. Запустите тестовое событие (например, добавьте товар в корзину).

  4. Проверьте раздел Статистика > Конверсии в своем аккаунте Affise, чтобы увидеть, была ли зарегистрирована конверсия. Если конверсия по какой-то причине не отображается, вы можете проверить раздел Статистика > Серверный постбэк, чтобы выяснить причину проблемы.

Если вы видите конверсию в Affise, все готово.

🔎 Советы по устранению неполадок:

  • Убедитесь, что вы правильно ввели трекинг домен и ID оффера.

  • Используйте консоль браузера, чтобы проверить event.data правильно ли она построена.

  • Проведите тестирование в окне инкогнито с отключенными всеми расширениями браузера.

  • Если вам нужна помощь, обратитесь по адресу [email protected].


По всем возникшим вопросам обращайтесь в службу поддержки Affise по электронной почте: [email protected].

Нашли ответ на свой вопрос?