Отслеживание количества кликов по ссылке - php

Я сделал веб-сайт отслеживания в php, который отслеживает количество кликов по определенной ссылке - для отслеживания партнерских ссылок. что я делаю:

Когда пользователь щелкает ссылку, предоставленную моим веб-сайтом, он переходит на мой веб-сайт, который после записи своего IP-адреса перенаправляет пользователя на другой адрес, сопоставленный с ссылкой, по которой щелкнул пользователь. Счетчик увеличивает количество кликов после проверки IP.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я сравниваю количество кликов на своем веб-сайте и в результатах Facebook, мой результат во много раз больше. Я не знаю, в чем причина этого.

Мои результаты:

введите здесь описание изображения

Результаты в Фейсбуке:

введите здесь описание изображения

введите здесь описание изображения

Мой вопрос в том, почему есть разница? если у facebook есть какие-то дополнительные проверки, кто-нибудь знает, что это такое? или они частные? или фейсбук просто уменьшает количество кликов?

Помощь будет очень признательна. Я застрял здесь.

Вот мой код для проверки IP-адреса посетителей и увеличения счетчика кликов:

<?php 
require_once "dbdata.php";  

if(isset($_GET['linkid']) && !empty($_GET['linkid'])){


$id =  $_GET['linkid'];          //getting link id to fetch data from database
$ip = $_SERVER['REMOTE_ADDR'];   // getting visitors ip address

//database connection
@$db = new mysqli(hostname,username,password,dbname) or die(json_encode(array("status"=>"Can not connect  (Database Connection Error)")));


  //getting data from table
  $query = "select * from links_shared where id = $id ;";
  $result_link = $db -> query($query) or die(json_encode(array("status"=>"Error Fetching previous income data")));
  $row_link = $result_link-> fetch_assoc();

  $link = $row_link['orignal']; //the link to be redirect the user to

  header("Location:".$link); //redirected

  if($row_link['status'] == "live"){   //status of link should be live


    $array_ip = explode(",", $row_link['ip']); //comma sepearted string of ips to array

    if(!in_array($ip, $array_ip)){   //check if ip is not already present

        $query = "select * from links_deleted where url = '$link' ;";   //getting block list
        $result_del = $db -> query($query) or die(json_encode(array("status"=>"Can not select deleted")));

        if($result_del -> num_rows <1){  //check if link  not in block list

            $concat = ",".$ip; 
            echo $query = "update links_shared set clicks = (clicks + 1), ip = concat(ip,'$concat') where id= $id; ";
            $result_update = $db -> query($query) or die(json_encode(array("status"=>"can not update clicks")));
        }   

    }

  }

}
?>

person Hamza Tasneem    schedule 03.08.2016    source источник


Ответы (1)


Либо facebook аннулирует клики, которые принимает ваш скрипт (например, ненадежные IP-адреса, повторяющиеся IP-адреса, автоматическое обнаружение ботов...), либо, проще говоря, facebook видит клики только со своей платформы, но ваш скрипт получает все клики отовсюду.

Конечно, может быть проблема и с самим вашим скриптом, но, поскольку вы его не показываете, я не могу решить эту проблему.

person BeetleJuice    schedule 03.08.2016
comment
могу ли я показать вам сценарий, отредактировав вопрос? спс за ответ :) - person Hamza Tasneem; 03.08.2016
comment
@hamza, вы можете добавить это к своему вопросу, и кто-то может заметить что-то, что поможет вам его улучшить. - person BeetleJuice; 04.08.2016