2012-12-05 78 views
-1

我有一个问题,试图让我的会员跟踪像素标记转换使用cURL请求。每次请求我都会收到200的回复。因此,我不知道为什么它没有进行转换。我在网上做了一些研究,但在谷歌上找不到太多关于这方面的信息。cURL会员跟踪像素

function pixel($row) { 

$i = 0; 
$pixelArray = array("https://path.tosite.com/pixel/","https://path.tosite.com/pixel/2"); 
$count = sizeof($pixelArray); 

    while ($i < $count) { 

     $line = $pixelArray[$i]; 
     //echo "<br/> line = ".$line; 
     // replace [afid], [sid], [c1], [c2], [c3], or [t] with the corresponding value in $_SESSION 
     $line = preg_replace_callback(
      '/\[(afid|sid|c1|c2|c3|t)\]/', 
      function($matches) { return $_SESSION[$matches[1]]; }, 
      $line 
     ); 
     //echo "<br/>".$i.": ".$line; 
     firePixels($line, $row); 
     $i++; 
    } 
    //echo "Done"; 
} 
function firePixels($url, $row) 
{ 

    $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE); 
    curl_setopt($ch, CURLOPT_FORBID_REUSE, TRUE); 
    curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 
    //curl_setopt($ch, CURLOPT_POST, TRUE); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5'); 

    $head = curl_exec($ch); 
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    $error = curl_error($ch); 
    curl_close($ch); 

    if(!$head) 
    { 

     logPixel($url, $row, $httpCode); 
     //die('Pixel Execution Failed: '.$error." | ".$url); 
     return FALSE; 
    } 


    logPixel($url, $row, $httpCode); 

    if($httpCode === 200) 
    { 
     return TRUE; 
    } 
    else 
    { 
     return FALSE; 
    } 


} 

回答

0

原因很可能是以下中的一个是这样的:

  1. 你卷曲会议结束了缺少一些饼干,你的联盟期待,而被忽略。

  2. 您的分支机构检测到来自服务器IP的异常请求数量,并将其阻止。

  3. 您的子公司在您的请求中发现了一些其他违规行为,并且阻止了它们。

联属网络跟踪像素旨在由客户的浏览器请求,而不是由您的服务器请求。除非您已与您的分支机构做出其他安排,否则您不应尝试此操作。

+0

你说的对#1。我必须确保附属公司设置为回传像素,然后为其提供适当的参数。太感谢了 –