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

Affise Web SDK

Автор: Daria Mamchenkova

Affise Web SDK — это мощное решение для отслеживания, соответствующее требованиям конфиденциальности, которое собирает данные непосредственно из параметров трекинг ссылок и обрабатывает их с помощью пикселя. Вместо того, чтобы полагаться на сторонние файлы cookie, которые сталкиваются с растущими ограничениями браузеров, SDK беспрепятственно генерирует клики и конверсии, обеспечивая точное отслеживание без ущерба для конфиденциальности пользователей.

🔎 Подробнее о типах интеграции можно прочитать здесь.

Affise Web SDK

Affise Web SDK обеспечивает интеграцию с платформой Affise для отслеживания взаимодействий пользователей без перенаправления через сторонние системы отслеживания.

Ключевые особенности:

  • Генерация кликов на стороне клиента без перенаправления пользователей

  • Отслеживание конверсий с поддержкой продуктовых фидов

  • Несколько механизмов хранения с резервными вариантами для ограничений браузера

  • Кроссбраузерная совместимость со встроенными полифиллами

Механизм хранения

SDK использует несколько механизмов хранения с резервными вариантами:

  • Cookies (основное хранилище)

  • localStorage (вторичное хранилище)

  • sessionStorage (резервный механизм)

Если один механизм выходит из строя, SDK автоматически переходит к следующему.

Совместимость с браузерами

SDK включает в себя полифилы для современных функций JavaScript, обеспечивая совместимость с:

  • Chrome 45+

  • Firefox 38+

  • Safari 9+

  • Edge 12+

  • Internet Explorer 11

Безопасность

  • SDK сохраняет данные в файлах cookie и хранилище браузера, но браузеры имеют правила, которые контролируют, как это работает.

  • Большинство браузеров блокируют файлы cookie третьих сторон, поэтому отслеживание пользователей на разных веб-сайтах может работать не идеально.

  • SDK пробует различные методы для сохранения данных, даже когда браузеры блокируют определенные функции.

  • Если браузер имеет строгие настройки конфиденциальности, для получения лучших результатов может потребоваться использовать отслеживание на стороне сервера.

🔎 Теперь вы можете запускать рекламные кампании в Google Ads, используя наш WebSDK с доменом https://trk.affattr.com, который успешно прошел модерацию рекламы.

Для этого просто включите в свой код следующую конфигурацию:

<script src="https://trk.affattr.com/websdk.js"></script> - Standard integration, but with a dedicated domain
<script>
// Configure the SDK TO WORK WITH GOOGLE TRANSPARENCY DOMAIN
ASDK.configure({
use_google_transparency: true, <--- Required when using https://trk.affattr.com
client_id: 2, <--- Required when using https://trk.affattr.com
tracking_domain: "https://trk.affattr.com" <--- Must be manually specified; otherwise, it won't work
});
</script>

У каждого клиента есть свой client_id. Чтобы его получить, обратитесь в службу поддержки или к менеджеру.

Базовая настройка

Перед использованием SDK настройте его с помощью трекинг домена из оффера (может быть стандартным или настраиваемым):

<!-- Load the SDK --> <script src="https://{your-tracking-domain}/websdk.js"></script>

Отслеживание кликов

Метод click() генерирует клик без перенаправления пользователя, что идеально подходит для лендингов:

// Basic click tracking
ASDK.click({
offer_id: 'OFFER123', // Required
affiliate_id: 'AFF456' // Required
})
.then(clickId => {
console.log('Click tracked successfully:', clickId);
})
.catch(error => {
console.error('Error tracking click:', error);
});

Отслеживание конверсий

Метод conversion() отслеживает, когда пользователь выполняет желаемое действие (покупка, регистрация и т. д.):

// Basic conversion tracking using click ID
ASDK.conversion({
click_id: ASDK.clickId('OFFER123'), // Get the stored click ID for this offer
offer_id: 'OFFER123',
status: '1', // 1 = confirmed
sum: '99.99'
})
.then(() => {
console.log('Conversion tracked successfully');
})
.catch(error => {
console.error('Error tracking conversion:', error);
});

// Alternative: conversion tracking using promo code
ASDK.conversion({
promo_code: 'SUMMER20',
offer_id: 'OFFER123',
status: '1',
sum: '99.99'
})
.then(() => {
console.log('Conversion tracked successfully');
})
.catch(error => {
console.error('Error tracking conversion:', error);
});

Примеры интеграции

Лендинг электронной коммерции:

document.addEventListener('DOMContentLoaded', function() {
// 1. Get tracking parameters from URL
const offerId = ASDK.urlParameter('offer_id') || 'DEFAULT_OFFER';
const affiliateId = ASDK.urlParameter('aff_id') || 'DEFAULT_AFFILIATE';

// 2. Generate a click
ASDK.click({
offer_id: offerId,
affiliate_id: affiliateId,
user_agent: navigator.userAgent
})
.then(clickId => {
console.log('Tracking initialized:', clickId);
})
.catch(error => {
console.error('Tracking error:', error.message);
});
});

Страница оформления заказа/страница благодарности в электронной коммерции:

document.addEventListener('DOMContentLoaded', function() {
// 1. Get order information
const orderDetails = {
id: 'ORD-12345',
total: 149.99,
currency: 'USD',
products: [
{ id: 'SKU001', name: 'Product 1', price: 99.99, quantity: 1 },
{ id: 'SKU002', name: 'Product 2', price: 24.99, quantity: 2 }
]
};

// 2. Get the offer ID and click ID
const offerId = ASDK.urlParameter('offer_id') || 'DEFAULT_OFFER';
const clickId = ASDK.clickId(offerId);

// 3. Track the conversion with product feed
ASDK.conversion({
click_id: clickId,
offer_id: offerId,
status: '1', // 1 = confirmed
sum: orderDetails.total.toString(),
order_currency: orderDetails.currency,
comment: `Order ${orderDetails.id}`,
items: orderDetails.products.map(product => ({
order_id: orderDetails.id,
sku: product.id,
quantity: product.quantity.toString(),
price: product.price.toString()
}))
})
.then(() => {
console.log('Conversion tracked successfully');
})
.catch(error => {
console.error('Error tracking conversion:', error);
});
});

Обработка ошибок

ASDK.click({
offer_id: 'OFFER123',
affiliate_id: 'AFF456'
})
.then(clickId => {
console.log('Click tracked successfully:', clickId);
})
.catch(error => {
// Handle specific error types
switch(error.code) {
case 'NETWORK_ERROR':
console.error('Network unavailable:', error.message);
// Retry logic or offline handling
break;
case 'SERVER_ERROR':
console.error('Server error:', error.details.status);
// Log to your monitoring system
break;
case 'MISSING_REQUIRED_PARAMS':
console.error('Missing parameters:', error.details.provided);
// Show feedback about missing data
break;
default:
console.error('Error tracking click:', error.message);
}
});

Справочник API

Параметры конфигурации

Параметр

Тип

Описание

tracking_domain

string/строка

Домен, используемый для отслеживания кликов и конверсий

Параметры метода клика

Метод click() принимает объект опций со следующими параметрами:

Обязательные параметры

Параметр

Тип

Описание

Параметр API

offer_id

string/строка

Обязательный. Идентификатор оффера

offer_id

affiliate_id

string/строка

Обязательно. Идентификатор аффилиата

pid

Необязательные параметры

Параметр

Тип

Описание

Параметр API

tracking_domain

string/строка

Переопределить трекинг домен по умолчанию

-

ip

string/строка

IP-адрес пользователя

ip

user_agent

string/строка

Строка пользовательского агента браузера пользователя

ua

ref_id

string/строка

Идентификатор ссылки

ref_id

ref_android_id

string/строка

Идентификатор Android

ref_android_id

ref_device_id

string/строка

Идентификатор устройства

ref_device_id

mac_address

string/строка

MAC-адрес

mac_address

os_id

string/строка

Идентификатор операционной системы

os_id

user_id

string/строка

Идентификатор пользователя

user_id

ext1

string/строка

Дополнительный параметр 1

ext1

ext2

string/строка

Дополнительный параметр 2

ext2

ext3

string/строка

Дополнительный параметр 3

ext3

imp_id

string/строка

Идентификатор импрешена

imp_id

unid

string/строка

Уникальный идентификатор

unid

fbclid

string/строка

Идентификатор клика Facebook

fbclid

landing_id

string/строка

Идентификатор лендинга

l

sub1

string/строка

Пользовательский подпараметр 1

sub1

sub2

string/строка

Пользовательский подпараметр 2

sub2

sub3

string/строка

Пользовательский подпараметр 3

sub3

sub4

string/строка

Пользовательский подпараметр 4

sub4

sub5

string/строка

Пользовательский подпараметр 5

sub5

Примечание: sub6 через sub30 также поддерживаются с тем же шаблоном.

Параметры метода преобразования

Метод conversion() принимает объект опций со следующими параметрами:

Обязательные параметры

Параметр

Тип

Описание

Параметр API

click_id

string/строка

Идентификатор клика (полученный через SDK)

afclick

promo_code

string/строка

Промокод (альтернатива click_id)

promo_code

Примечание: один из этих параметров должен быть указан.

Необязательные параметры

Параметр

Тип

Описание

Параметр API

tracking_domain

string/строка

Переопределить трекинг домен по умолчанию

-

offer_id

string/строка

Идентификатор оффера

offer_id

status

string/строка

Статус конверсии (см. коды статусов ниже)

afstatus

secure

string/строка

Токен безопасности для проверки постбэка

afsecure

comment

string/строка

Дополнительный комментарий о преобразовании

afcomment

action_id

string/строка

Внешний идентификатор конверсии

afid

sum

string/строка

Сумма конверсии

afprice

goal

string/строка

Идентификатор цели конверсии

afgoal

order_sum

string/строка

Общая сумма заказа (для обновлений)

order_sum

order_currency

string/строка

Валюта заказа

order_currency

user_id

string/строка

Идентификатор пользователя

user_id

custom_field1

string/строка

Пользовательское поле 1

custom_field1

custom_field2

string/строка

Пользовательское поле 2

custom_field2

custom_field3

string/строка

Пользовательское поле 3

custom_field3

custom_field4

string/строка

Пользовательское поле 4

custom_field4

custom_field5

string/строка

Пользовательское поле 5

custom_field5

Примечание: custom_field6 через custom_field15 также поддерживаются с тем же шаблоном.

Коды статуса

Значение

Описание

1

Подтверждено

2

В ожидании

3

Отклонено

5

На удержании

Формат элемента продуктового фида

Каждый элемент в items должен быть объектом со следующими свойствами:

{ order_id: string, // Order identifier sku: string, // Product SKU quantity: string, // Product quantity price: string // Product price }

Вспомогательные методы

Метод

Описание

ASDK.urlParameter(name)

Получить значение параметра URL по имени

ASDK.clickId(offerId)

Получить сохраненный идентификатор клика для определенного идентификатора оффера

Распространенные проблемы и решения

Клик не сгенерирован

Идентификатор клика не возвращен, промис отклонен.

Решение:

  1. Проверьте, что необходимые параметры offer_id и affiliate_id предоставлены.

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

  3. Убедитесь, что есть сетевое подключение к трекинг домену.

  4. Проверьте консоль браузера на наличие конкретных сообщений об ошибках.

Идентификатор клика не сохранен

Клик сгенерирован, но недоступен при использовании» ASDK.clickId().

Решение:

  1. Проверьте, не блокируются ли файлы cookie браузером.

  2. Убедитесь, что ваш домен не находится в режиме инкогнито/приватного просмотра.

  3. Убедитесь, что ID оффера совпадает между кликом и извлечением.

Конверсия не отслеживается

Метод конверсии завершен, но конверсия не отображается на панели инструментов.

Решение

  1. Убедитесь, что вы предоставляете либо действительный click_id или promo_code.

  2. Проверьте, соответствует ли идентификатор клика идентификатору из исходного клика.

  3. Убедитесь, что offer_id соответствует идентификатору, использованному для клика.

  4. Убедитесь, что код статуса правильный (используйте «1» для подтвержденного).


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

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