2014-03-29 9 views
9

Ich habe versucht, Google Analytics zu verwenden, um weitere benutzerdefinierte Daten zu verfolgen. Also dachte ich, ich nutze die Ereignisse. Im Folgenden ist der Code, den ich versuchte, wo ich die uuid ersetzt und user agent:Google Analytics Measurement Protocol

<?php 
function gen_uuid() { 
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', 
mt_rand(0, 0xffff), mt_rand(0, 0xffff), 
mt_rand(0, 0xffff), 
mt_rand(0, 0x0fff) | 0x4000, 
mt_rand(0, 0x3fff) | 0x8000, 
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) 
); 
} 

$data = array(
'v' => 1, 
'tid' => 'UA-********-**', 
'cid' => gen_uuid(), 
't' => 'event' 
); 


$data['ec'] = "category"; 
$data['ea'] = "product"; 
$data['el'] = "element"; 
$data['ev'] = "34"; 


$url = 'http://www.google-analytics.com/collect'; 
$content = http_build_query($data); 
$content = utf8_encode($content); 
$user_agent = 'Example/1.0 (http://example.com/)'; 


$ch = curl_init(); 
curl_setopt($ch,CURLOPT_USERAGENT, $user_agent); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type: application/x-www-form-urlencoded')); 
curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1); 
curl_setopt($ch,CURLOPT_POST, TRUE); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $content); 
curl_exec($ch); 
curl_close($ch); 
?> 

Bin ich etwas fehlt?

+0

Warum denkst du "bin ich etwas fehlt"? –

+0

weil es nicht zu funktionieren scheint. Zumindest bekomme ich keine Ereignisse in Google Analytics. – user2693017

+1

Können Sie einige Beispiele für den endgültigen Wert für '$ data' hinzufügen? Am Ende kommt es darauf an, wenn Sie sich mit dem Messprotokoll – Eduardo

Antwort

0

können Sie versuchen, diese

 <?php 
     function gen_uuid() { 
     return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', 
     mt_rand(0, 0xffff), mt_rand(0, 0xffff), 
     mt_rand(0, 0xffff), 
     mt_rand(0, 0x0fff) | 0x4000, 
     mt_rand(0, 0x3fff) | 0x8000, 
     mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) 
     ); 
     } 

     $data = array(
     'v' => 1, 
     'tid' => 'UA-********-**', 
     'cid' => gen_uuid(), 
     't' => 'event' 
     ); 


     $data['ec'] = "category"; 
     $data['ea'] = "product"; 
     $data['el'] = "element"; 
     $data['ev'] = "34"; 


     $url = 'http://www.google-analytics.com/collect'; 
     $content = http_build_query($data); 
     $content = utf8_encode($content); 
     $user_agent = 'Example/1.0 (http://example.com/)'; 


     $ch = curl_init(); 
     curl_setopt($ch,CURLOPT_USERAGENT, $user_agent); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type: application/x-www-form-urlencoded')); 
     curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1); 
     curl_setopt($ch,CURLOPT_POST, TRUE); 
     curl_setopt($ch,CURLOPT_POSTFIELDS, $content); 
     curl_exec($ch); 
     curl_close($ch); 
     ?> 

denke ich, kann dies

3

arbeitet Ich habe den Code getestet und es funktioniert.

Aber helfen Sie diese debuggen, ändern Sie den/collect Pfad/debug/sammeln und Google wird in den Treffer bestätigen, versuchen:

<?php 
function gen_uuid() { 
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', 
mt_rand(0, 0xffff), mt_rand(0, 0xffff), 
mt_rand(0, 0xffff), 
mt_rand(0, 0x0fff) | 0x4000, 
mt_rand(0, 0x3fff) | 0x8000, 
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) 
); 
} 

$data = array(
'v' => 1, 
'tid' => 'UA-1111111-1', 
'cid' => gen_uuid(), 
't' => 'event' 
); 


$data['ec'] = "category"; 
$data['ea'] = "product"; 
$data['el'] = "element"; 
$data['ev'] = "34"; 


$url = 'https://www.google-analytics.com/debug/collect'; 
$content = http_build_query($data); 
$content = utf8_encode($content); 
$user_agent = 'Example/1.0 (http://example.com/)'; 


$ch = curl_init(); 
curl_setopt($ch,CURLOPT_USERAGENT, $user_agent); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type: application/x-www-form-urlencoded')); 
curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1); 
curl_setopt($ch,CURLOPT_POST, TRUE); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $content); 
curl_exec($ch); 
curl_close($ch); 
?> 

Und, stellen Sie sicher, dass Berichte an die Echtzeit gehen, um zu überprüfen wenn deine Hits verarbeitet werden.

+0

Das war toll/debuggen/sammeln danke. – dsum27

+0

Konnten Leute nicht Daten zu anderen Berichten mit diesem hinzufügen? Wenn du ihre UA wüsstest. –

+1

Sure Gary! Es ist wichtig, dass Sie regelmäßig Ihren Hostnamen-Bericht überprüfen und/oder einige Trefferfilter implementieren, um sicherzustellen, dass Ihre offizielle Ansicht/Ihr Bericht nur die gewünschte Datensammlung enthält. –