我在尝试让我的联盟会员跟踪像素以使用cURL请求标记转化时遇到问题。每个请求我得到200的响应。因此,我不知道为什么它没有进行转换。我在网上做了一些研究,但在Google上找不到这方面的内容。
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 :(得分:0)
很有可能是因为以下情况之一:
您的cURL会话最终会遗漏您的联盟会员期待的一些Cookie,但会被忽略。
您的联盟会员已从服务器的IP中检测到异常数量的请求,并已将其阻止。
您的联盟会员已在您的请求中检测到其他一些违规行为,并已将其阻止。
会员跟踪像素旨在由客户的浏览器请求,而不是由您的服务器请求。除非你已经与你的会员做了安排,否则你不应该这样做。