Comagic: возобновление задачи
Суть задачи.
В интерфейсе CoMagic уведомления о конверсии настраиваются вручную - можно задать по какому событию и условию его отправлять. Чаще всего, это делается на событие "завершение звонка" но можно и по-другому - в зависимости от потребности - тут список всех возможных значений для передачи http://help.comagic.ru/topics/1538-uvedomleniya-nastrojka/
Андрей, возобновляем задачу по интеграции с коллтрекинговой системой Comagic.
Делим на 2 этапа:
1. Передача webo_id в Comagic: настройка синхронизации кук.
Нужен скрипт, который будет обращаться к нашему синхронизационному тегу:
<img src="http://redirect.frontend.weborama.fr/redirect/standard?url=http%3A%2F%2FPartnerABC.com%2Fusersync%3Fwebouuid%3D{WEBO_CID}">
, при редиректе в макрос {Webo_cid} будет возвращаться weborama_id.
Нам нужно будеть передать данный идентификатор на сторону Comagic, можно сделать это через обращение к их API (https://www.comagic.ru/support/api/javascript-api/manual/js_api/#_11 – добавление свойства посетителю).
Вот пример из документации: Comagic.setProperty(name, value);
Параметры:
name text Имя свойства, которое должно быть присвоено посетителю
value text Значение свойства (необязательный параметр)
Т.е. данное обращение должно выглядеть следующим образом: Comagic.setProperty('Weborama_ID', '12345678');
Потом мы должны будем вызвать HTTP нотификацию, где мы забираем куку с определенным именем и значениями (id посетителя во внешней системе, id обращения в системе Comagic и т.д).
По итогу нам необходимо получить таблицу соответствий, где одному пользователю будет присвоена ID Comagic и одновременно Weborama_ID, которая позволит распознать пользователя в нашей DMP.
2. Передача информации о конверсии - задача, получить информацию о пользователях, совершивших конверсию.
С помощью функционала http-уведомлений Comagic при входящем звонке (или любой другой конверсии) отправляет информацию на сервер Weborama с указанием Weborama_ID посетителя, совершившего конверсию.
С нашей стороны нужен еще один скрипт, который будет собирать конверсионный счетчик WCM и вызывать его на нужного {WEBO_CID}. Вызов должен быть "мнимый": сначала мы должны искусственно подставить нужную куку, а после вызвать нужный конверсионный счетчик. Нам нужно будет внутри разделять пользователей по виду совершенной конверсии - входящий звонок, офлайн-заказ и т.д., чтобы потом можно было анализировать и таргетироваться на конкретный сегмент.
Во вложении конверсионный счетчик,который делал Цветков.
P.s. на всякий случай старая задача от Жени http://megaplan.ias.su/task/1031924/card/
import csv
import sys
import os
import requests
import json
import random
import re
from concurrent import futures
param_collection = []
lines_collection = []
counter = 0
ct_bad_requests = 0
num_lines = 0
counts = 0
slice = 1000
input = str(sys.argv[1]) # First argument : the file to load
wamid = str(sys.argv[2]) # The wamid of the client
csid = str(sys.argv[3]) # The customcategory_customvalue test_1 , abcd_544 and so on
url = "http://wam.solution.weborama.fr/fcgi-bin/dispatch.fcgi?d.A=ex&d.a=" + wamid + "&d.d="
path = ""
def fireUrl(line):
global counter
global ct_bad_requests
cus = csid
url_wam = url + cus
#print url_wam
#WARNING: AFFICHE_W is the 14 car long . If you want to use weboid ( comming from datamining)
try:
c = line[0]
if len(c) == 12:
c = c + "AA"
cookies = dict(AFFICHE_W=c)
#print url_wam
content = requests.get(url_wam, cookies=cookies,allow_redirects=False,timeout=2)
counter += 1
#print content.status_code
if content.status_code not in (200,302):
ct_bad_requests += 1
print "Bad status detected:" + str(content.status_code)
if (counter % 100 ) == 0:
print "counter=" + str(counter)
except:
pass
return 1
with open(path + input,"r") as csvinput:
print "Start reading ..."
lines = csv.reader(csvinput,delimiter='|')
for line in lines:
lines_collection.append(line)
nbl = len(lines_collection)
print str(nbl) + " lines to fire. Start forks now "
#start slicing
#compute the number of blocks
nbi = divmod(nbl,slice)
i = nbi[0]
print "Number of slices : " + str( i + 1)
r = nbi[1]
for b in range(0,i+1):
start =b*slice
end =(b+1)*slice
print str(start) + "::" + str(end)
dslice = lines_collection[start:end]
with futures.ThreadPoolExecutor(max_workers=4) as executor:
for (count) in executor.map(fireUrl, dslice):
counts += count
print "Amount of mutations store in wam:" + str(counts)
print "counter : " + str(counter)
print "bad request : " + str(ct_bad_requests)
function getWeboID(){
var link = window.location.href;
window.location.href = "https://redirect.frontend.weborama.fr/redirect/standard?url=https://weborama.com/pixel/wb/{WEBO_CID}/";
var urls = window.location.toString();
window.location.href = link;
var id = urls.split('/')[6];
return id;
}
Комментариев нет:
Отправить комментарий