Files
2025-03-12 17:06:23 +01:00

332 lines
16 KiB
PHP

<script type="text/javascript" src="/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/js/jquery.md5.js"></script>
<script type="text/javascript">
jQuery(function ($)
{
$(document).ready(function()
{
console.log("ads tracker status: active");
var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = window.location.search.substring(1),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
}
}
};
function updateDebug(ads_id, ads_tracker_cookie) {
var referrer = document.referrer;
var browser = "<?php echo $_SERVER['HTTP_USER_AGENT']; ?>";
var ip = "<?php echo $_SERVER['REMOTE_ADDR']; ?>";
var hash = getUrlParameter('hash');
var url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search
var cookie = JSON.stringify(ads_tracker_cookie);
console.log("debug url: " + url);
console.log("debug referrer: " + referrer);
console.log("debug browser: " + browser);
console.log("debug ip: " + ip);
console.log("debug ads hash: " + hash);
console.log("debug ads id: " + ads_id);
console.log("debug cookies: " + cookie);
$.post( "<?php echo st_url_for('appAdsTrackerFrontend/debug') ?>", { url: url, referrer: referrer, browser: browser, ip: ip, hash: hash, ads_id: ads_id, cookie: cookie })
.done(function( data ) {
console.log("debug update");
});
}
function updateRemoteAddressData(ads_id, ads_tracker_cookie) {
var remote_address = "<?php echo $_SERVER['REMOTE_ADDR']; ?>";
var hash = getUrlParameter('hash');
var url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search
if(!hash){
hash="###direct###"
}
var cookie = JSON.stringify(ads_tracker_cookie);
console.log("remote url: " + url);
console.log("remote address: " + remote_address);
console.log("remote ads hash: " + hash);
console.log("remote ads id: " + ads_id);
console.log("remote cookies: " + cookie);
$.post( "<?php echo st_url_for('appAdsTrackerFrontend/remoteAddressData') ?>", { url: url, remote_address: remote_address, hash: hash, ads_id: ads_id, cookie: cookie })
.done(function( data ) {
console.log("remote address data update");
});
}
function getKeyByValue(object, value) {
for (var prop in object) {
if (object.hasOwnProperty(prop)) {
if (object[prop] === value)
return prop;
}
}
}
function getDateFormat() {
var d = new Date();
d = d.getFullYear() + "-" + ('0' + (d.getMonth() + 1)).slice(-2) + "-" + ('0' + d.getDate()).slice(-2) + " " + ('0' + d.getHours()).slice(-2) + ":" + ('0' + d.getMinutes()).slice(-2) + ":" + ('0' + d.getSeconds()).slice(-2);
return d;
}
function prepareCookies(ads_id, ads_tracker_cookie) {
var ads_hash_control = "<?php echo $ads_hash_control ?>";
var ads_tracker_cookie_json = JSON.stringify(ads_tracker_cookie);
console.log(ads_tracker_cookie_json);
<?php if($config->get('is_extend')): ?>
updateRemoteAddressData(ads_id, ads_tracker_cookie);
<?php endif; ?>
<?php if($config->get('is_debug')): ?>
updateDebug(ads_id, ads_tracker_cookie);
<?php endif; ?>
var expires_at = new Date();
var days = <?php echo $config->get('ads_terminate'); ?>;
expires_at.setTime(expires_at.getTime() + 1000 * days * 24 * 60 * 60);
$.cookies.set('ads_tracker_'+ads_hash_control, ads_tracker_cookie_json, {path: '/', expiresAt: expires_at});
}
function addCookiesData(ads_id, ads_path) {
var ads_hash_control = "<?php echo $ads_hash_control ?>";
var date_time = getDateFormat();
var md5 = $.md5(date_time);
var ads_tracker_entering = {};
ads_tracker_entering['ads_cookie_hash'] = md5;
ads_tracker_entering['ads_id'] = ads_id;
ads_tracker_entering['ads_path'] = ads_path;
ads_tracker_entering['ads_entering'] = 1;
ads_tracker_entering['ads_last'] = "true";
ads_tracker_entering['ads_create'] = date_time;
ads_tracker_entering['ads_update'] = date_time;
ads_tracker_entering['ads_sum_control'] = "";
var md5control = $.md5(JSON.stringify(ads_tracker_entering)+ads_hash_control);
ads_tracker_entering['ads_sum_control'] = md5control;
var ads_tracker_cookie = [];
ads_tracker_cookie.push(ads_tracker_entering);
console.log(ads_tracker_cookie);
return ads_tracker_cookie;
}
function checkSumControl(ads_tracker_entering) {
var ads_hash_control = "<?php echo $ads_hash_control ?>";
var check_sum_entering = Object.assign({}, ads_tracker_entering);
var check_hash = check_sum_entering['ads_sum_control'];
//console.log("check_hash :"+check_hash);
check_sum_entering['ads_last'] = "true";
check_sum_entering['ads_sum_control'] = "";
var md5control = $.md5(JSON.stringify(check_sum_entering)+ads_hash_control);
console.log(check_hash + " = " + md5control);
if(check_hash==md5control){
console.log("sum control status: true");
return true;
}else{
console.log("sum control status: false");
return false;
}
}
function updateCookiesData(ads_tracker_cookie, ads_id, ads_path) {
var ads_hash_control = "<?php echo $ads_hash_control ?>";
var is_exist = 0;
$.each( ads_tracker_cookie, function( key, ads_tracker_entering ) {
var sum_control_status = checkSumControl(ads_tracker_entering);
ads_tracker_entering['ads_last'] = "false";
if(ads_tracker_entering['ads_id'] == ads_id){
console.log("finded");
console.log("sum control:"+ads_tracker_entering['ads_sum_control']);
is_exist = 1;
var date_time = getDateFormat();
ads_tracker_entering['ads_entering'] = ads_tracker_entering['ads_entering']+1 ;
ads_tracker_entering['ads_update'] = date_time;
ads_tracker_entering['ads_last'] = "true";
ads_tracker_entering['ads_sum_control'] = "";
var md5control = $.md5(JSON.stringify(ads_tracker_entering)+ads_hash_control);
ads_tracker_entering['ads_sum_control'] = md5control;
console.log("new sum control:"+ads_tracker_entering['ads_sum_control']);
}
});
if(is_exist==0){
var ads_hash_control = "<?php echo $ads_hash_control ?>";
var date_time = getDateFormat();
var md5 = $.md5(date_time);
var ads_tracker_entering = {};
ads_tracker_entering['ads_cookie_hash'] = md5;
ads_tracker_entering['ads_id'] = ads_id;
ads_tracker_entering['ads_path'] = ads_path;
ads_tracker_entering['ads_entering'] = 1;
ads_tracker_entering['ads_last'] = "true";
ads_tracker_entering['ads_create'] = date_time;
ads_tracker_entering['ads_update'] = date_time;
ads_tracker_entering['ads_sum_control'] = "";
var md5control = $.md5(JSON.stringify(ads_tracker_entering)+ads_hash_control);
ads_tracker_entering['ads_sum_control'] = md5control;
ads_tracker_cookie.push(ads_tracker_entering);
}
return ads_tracker_cookie
}
//************* start recognize active ads ******************
var ads_hash_control = "<?php echo $ads_hash_control ?>";
var url_hash = getUrlParameter('hash');
console.log("ads tracker hash: "+url_hash);
var ads_array_hash = $.parseJSON('<?php echo $ads_array_hash ?>');
var ads_array_ids = $.parseJSON('<?php echo $ads_array_ids ?>');
var ads_array_path = $.parseJSON('<?php echo $ads_array_path ?>');
if($.inArray(url_hash, ads_array_hash) !== -1){
console.log("recognize active ads");
var key = getKeyByValue(ads_array_hash, url_hash);
var ads_id = ads_array_ids[key];
var ads_path = ads_array_path[key];
var active_ads_session = window.sessionStorage.getItem("active_ads_"+ads_id);
window.sessionStorage.setItem("active_session", "active");
if(active_ads_session!="active"){
console.log("add to session ads "+ads_id);
window.sessionStorage.setItem("active_ads_"+ads_id, "active");
$.post( "<?php echo st_url_for('appAdsTrackerFrontend/checkAds') ?>", { id: ads_id })
.done(function( data ) {
// alert( "Data Loaded: " + data );
});
if (!$.cookies.get('ads_tracker_'+ads_hash_control)) {
var ads_tracker_cookie = addCookiesData(ads_id, ads_path);
prepareCookies(ads_id, ads_tracker_cookie);
}else{
var ads_tracker_cookie = $.cookies.get('ads_tracker_'+ads_hash_control);
ads_tracker_cookie = updateCookiesData(ads_tracker_cookie, ads_id, ads_path);
prepareCookies(ads_id, ads_tracker_cookie);
}
}else{
console.log("ads was active: "+ads_id);
}
}else{
console.log("can't ads recognize");
var active_session = window.sessionStorage.getItem("active_session");
if(active_session!="active"){
console.log("welcome to direct enterence");
window.sessionStorage.setItem("active_session", "active");
var ads_id = <?php echo $ads_direct; ?>;
var ads_path = "Wejścia bezpośrednie"
$.post( "<?php echo st_url_for('appAdsTrackerFrontend/checkAds') ?>", { id: ads_id })
.done(function( data ) {
});
if (!$.cookies.get('ads_tracker_'+ads_hash_control)) {
var ads_tracker_cookie = addCookiesData(ads_id, ads_path);
prepareCookies(ads_id, ads_tracker_cookie);
}else{
var ads_tracker_cookie = $.cookies.get('ads_tracker_'+ads_hash_control);
ads_tracker_cookie = updateCookiesData(ads_tracker_cookie, ads_id, ads_path);
prepareCookies(ads_id, ads_tracker_cookie);
}
}
}
});
});
</script>