Интеграция кода через Google Tag Manager (GTM)

Переход посетителя на сайт рекламодателя сопровождается информацией о сети с которой прошел переход (utm_source=sellaction.net) и уникальным идентификатором перехода (SAuid=6efc960fa51f60). Сеть и уникальный идентификатор перехода фиксируется рекламодателем (обычно в cookies посетителя). Посетитель совершает желаемое действие (например, оплачивает заказ), при этом сайт рекламодателя определяет наличие cookies utm_source и Sauid и в случае их наличия сообщает системе о регистрации действия.

Таким образом, на сайте должен быть расположен код, обеспечивающий регистрацию перехода от CPA сети - сохранение параметров, переданных при переходе с привязкой их к посетителю для последующей передачи CPA сети информации о регистрации желаемого действия.

Код, обеспечивающий вышеописанный функционал, может быть интегрирован в систему Google Tag Manager, при условии, что в GTM уже настроено получение переменной, содержащей ID заказа, а также переменной, содержащей сумму заказа (или количество единиц товара в заказе). Если данные условия выполняются, в GTM необходимо добавить 2 тега:

1. Тип - пользовательский HTML, установить на все страницы сайта.

<script type="application/javascript">
(function() {
    function c(e) {
        var d = RegExp("[?&]" + e + "=([^&]*)").exec(window.location.search);
        return d && decodeURIComponent(d[1].replace(/\+/g, " "))
    }
    function a(f, g) {
        var e = new Date(new Date().getTime() + 1000 * 3600 * 24 * 30);
        var domain = window.location.hostname.replace(/^(www\.)?(.+)$/i, '$2');
        document.cookie = f + "=" + g + "; domain=."+domain+"; path=/; expires=" + e.toUTCString()
    }
    function b() {
        if (window.location.href) {
            var d = c("utm_source");
            var e = c("SAuid");
            if (d != null && d.length) a("utm_source", d);
            if (e != null && e.length) a("SAuid", e);
        }
    }
    b();
})();
</script>

где:
utm_source - указывает, что переход произошел из рекламной CPA сети sellaction.net, можно задавать и другие UTM-метки по умолчанию;
SAuid – ID перехода в системе SellAction.

Эти параметры извлекаются из URL по которому посетитель перешёл на сайт рекламодателя и фиксируются вышеописанным кодом на 30 дней (зависит от параметра кампании «время жизни cookie») для последующей передачи CPA сети SellAction информации о регистрации действия.

2. Тип - пользовательский HTML, установить на страницу, что показывается клиенту после оформления заказа.

<script type="application/javascript">
(function() {
    var params = {
        order_id: {{ORDER_ID}},
        lastCookieWin: true,
        tariffs: {}
    }
    params.tariffs[{{TARIFF_ID}}] = {{TARIFF_PARAM}};
    function d(g) {
        var f = g + '=';
        var e = document.cookie.split(';');
        for (var h = 0; h < e.length; h++) {
            var j = e[h].trim();
            if (j.indexOf(f) == 0) {
                return j.substring(f.length, j.length)
            }
        }
        return ''
    }
    function a(g) {
        var tp = [];
        for (var p in g.tariffs) {
            if (g.tariffs.hasOwnProperty(p)) {
                tp.push(p + '_' + g.tariffs[p]);
            }
        }
        var t_str = tp.join('-');
        var f = 'id=' + g.id + '-' + t_str + '&order_id=' + g.order_id
        var e = new Image();
        e.src = g.schema + '://sellaction.net/reg.php?' + f;
        return e
    }
    if (params.lastCookieWin == true && !/sellaction/i.test(d('utm_source'))) return;
    params.id = d("SAuid");
    if (String(params.id).length > 7) {
        params.schema = /^https:/.test(document.location.href) ? 'https' : 'http';
        a(params);
    }
})();
</script>
        
ORDER_ID - название переменной, содержащей идентификатор заказа.
TARIFF_ID - название переменной, содержащей ID тарифа (согласовывается с менеджером сети SellAction)
TARIFF_PARAM - название переменной, содержащей: При необходимости передать информацию о конверсии по нескольким тарифам, укажите несколько элементов объекта params.tariffs, например:

params.tariffs[{{TARIFF_ID_1}}] = {{TARIFF_PARAM_1}};
params.tariffs[{{TARIFF_ID_2}}] = {{TARIFF_PARAM_2}};
params.tariffs[{{TARIFF_ID_3}}] = {{TARIFF_PARAM_3}};
        
См. также руководство рекламодателя.