PHP Analytics中的Google Analytics事件跟踪onclick标注

时间:2013-12-09 21:44:31

标签: javascript php google-analytics

我一直试图找出这个问题几天,几乎没有进展,我有一种感觉问题在于尝试从php调用javascript函数。我需要在我们公司的网站上开始跟踪文件下载,并且我已经在常规HTML中使用GA,但我们的很多文件都是通过php从数据库中提取的,我希望这个标签能够处理这些文件。没有什么东西可以传递到GA,我可以看到当我在FireFox中查看源代码时出现错误。感谢您的任何见解。

这是令我头疼的代码行。 <a target='_blank' href='/$file' onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);'><img alt='$filetext' src='/$image' border='0'/></a>

FireFox将这部分代码显示为红色错误,如果我取出onclick部分错误消失,页面显示正常,但没有像我之前提到的那样发送给GA:

<a target='_blank' href='/images/datasheets/IDS-66 Amphe-10G.pdf' onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', 'Amphe-10G']);'>

以下是完整的PHP代码:

<div class="download01">
<div class="download02"></div>
<table style="width: 100%" border="0" cellpadding="0" cellspacing="0">
<tbody>
<?


// Make a MySQL Connection
mysql_connect("localhost", "amphenol_web", "ampheweb") or die(mysql_error());
mysql_select_db("amphenol_sheets") or die(mysql_error());

// Retrieve all the data from the "distributors" table
$query = "SELECT * FROM datasheets ORDER BY filetext";


$result = mysql_query($query) or die(mysql_error());




$cols = 6;     // Here we define the number of columns




echo "<table>"; // The container table with $cols columns
    do{
        echo "<tr>";
        for($i=1;$i<=$cols;$i++){   // All the rows will have $cols columns even if
                                    // the records are less than $cols
            $row=mysql_fetch_array($result);


?>
<?

$file = $row['file'];
$image = $row['image'];
$filetext = $row['filetext'];

if ($file == ""){echo "<td>&nbsp;</td>";}
    else {echo

        "<td valign='top'>
            <table>
                <tr valign='top'>
<td width='120'>
<div align='center'><a target='_blank' href='/$file' onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);'><img alt='$filetext' src='/$image' border='0'/></a><br /><a target='_blank' href='/$file' onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);'>$filetext</a></div>
</td>
<tr>
                <td height='25'> </td>
                </tr>
           </table>
        </td>";
}
            }
//          else{
//              echo "<td>&nbsp;</td>"; //If there are no more records at the end, add a blank column
            }
//      }
//  } 

while($row);
    echo "</table>";

?>
</tr>
</tbody>
</table>
</div>

3 个答案:

答案 0 :(得分:0)

您的代码中似乎存在问题,您可以在其中定义分析跟踪:

onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);'>

您使用单引号,可能是因为您对回声使用双引号,您应该将其替换为:

onclick=\"_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);\">

仍然可以在echo上使用相同的双引号。

答案 1 :(得分:0)

<div align='center'><a target='_blank' href='/$file'"?> onclick="_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '<?php=$filetext ?>']);"><? echo "<img alt='$filetext' src='/$image' border='0'/></a><br /><a target='_blank' href='/$file' onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);'>$filetext</a></div>

然后使用此代码:)

只需将上面提供的代码替换为整行代码,以“div align ='center'&gt;”开头。

答案 2 :(得分:0)

这是最终的代码!

<div align='center'><a target='_blank' href='/$file'"?> onclick="_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '<?php echo "$filetext"?>']);"><? echo "<img alt='$filetext' src='/$image' border='0'/></a><br /><a target='_blank' href='/$file'"?> onclick="_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '<?php echo "$filetext" ?>']);"><? echo "$filetext</a></div>