Код отслеживания дедупликации заказов woocommerce - PullRequest
0 голосов
/ 20 ноября 2018

В woocommerce мы рекламируем наши продукты, которым помогают Admitad филиалы .До сих пор я использую код отслеживания из этого ответа (спасибо @LoicTheAztec) :
Заказ товаров в коде отслеживания JS на странице Заказ получен в Woocommerce

И этот код отлично работает ...


Дедупликация ордеров

Теперь мне нужна помощь с дедупликацией ордеров, и вот что Admitad дал нам:

"Если вы работаете только с Admitad, используйте значение по умолчанию для параметра дедупликации и пропустите этот шаг.
Если вы работаете с несколькими партнерскими сетями, вам необходимо настроить порядокДедупликация на вашей стороне. Определите значение переменной ADMITAD.Invoice.broker, чтобы мы могли понять, к какому источнику принадлежит заказ. Значение adm указывает заказы, которые принадлежат Admitad, они будут отслеживаться и попадать в нашу статистику.другие значения не будут отслеживаться. "

Пример параметров дедупликации других партнерских сетей:

AWIN.Tracking.Sale.channel = "adm"; // http://wiki.awin.com/index.php/Advertiser_Tracking_Guide/De-duplication

window.criteo_q.push({ event: "trackTransaction", deduplication: "adm", <...>); // https://support.criteo.com/hc/en-us/articles/205573701-Deduplication-Parameter

Ниже приведенПример использования файла cookie для хранения источника последнего клика.Источник кликов определяется на основе значения параметра GET, когда пользователь заходит на сайт.Файл cookie сохраняется определенное количество дней, значение файла cookie используется для определения параметра дедупликации.

// name of the cookie that stores the source

var cookie_name = 'deduplication_cookie';

// cookie lifetime

var days_to_store = 90;


// a function to get the source from the GET parameter

getSourceParamFromUri = function () {

// in the example we use the GET parameter deduplication_channel to define 
the source 

// if you use another parameter, specify its name in a regular expression

  return (/deduplication_channel=([^&]+)/.exec(document.location.search) || 
[])[1] || '';

};


// a function to get the source from the cookie named cookie_name

getSourceCookie = function () {

  var matches = document.cookie.match(new RegExp(

      "(?:^|; )" + cookie_name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, 
'\\$1') + "=([^;]*)"

  ));

  return matches ? decodeURIComponent(matches[1]) : undefined;

};


// a function to set the source in the cookie named cookie_name

setSourceCookie = function () {

  var param = getSourceParamFromUri();

  if (!param) { return; }

  var period = days_to_store * 60 * 60 * 24 * 1000; // in seconds

  var expiresDate = new Date((period) + +new Date);

  var cookieString = cookie_name + '=' + param + '; path=/; expires=' + 
expiresDate.toGMTString();

  document.cookie = cookieString;

  document.cookie = cookieString + '; domain=.' + location.host;

};


// set cookie

setSourceCookie();


// define a channel for Admitad

if (getSourceCookie(cookie_name)) {

  ADMITAD.Invoice.broker = getSourceCookie(cookie_name);

} else {

  ADMITAD.Invoice.broker = 'na';

}

Кто-нибудь может помочь нам создать и интегрировать с нашим кодом отслеживания эту дедупликацию заказа?

...