Google Analytics af Yoast Stored XSS # 2

Google Analytics ser ud til at have meget at tilbyde mig, men jeg er bekymret over den stigende brug af udvidelser til at begrænse sporing. Jeg ønsker ikke en overdreven mængde data, men jeg vil stadig spore besøgende, der ellers er fortrolige med privatlivets fred og bruger udvidelser til at begrænse disse eksterne ting. For eksempel for at bestemme konverteringer.

Kan jeg spore besøgende i Google Analytics ved hjælp af kode på backend i stedet for at bruge ekstern javascript-sporing?

Ingen. Ting fungerer bare anderledes på back-end end front-end.

Der er statistikpakker til back-enden, der fungerer på log dagligt. Du kan også tilføje kode til backend for at akkumulere statistikker live, men det kan medføre en tung arbejdsbyrde på serveren.

Nøglepunktet er, at data, der er tilgængelige på frontend, ikke er de samme som dem, der er tilgængelige i backend. Back-end ser alle anmodninger, mere end analytics, da det vil fange Javascript deaktiveret, analytics blockers og bot-trafik også.

Javascript på frontenden har adgang til meget mere, herunder begivenhedshåndterere for at vide, hvilket link der klikkes på og anden brugeradfærd.

  • Mens jeg samler, er der nogle forskelle, tror jeg, at det grundlæggende muligvis kunne håndteres på serversiden. Hvorfor kan jeg ikke videregive Google-oplysninger om URL, IP og noget UUID? Naturligvis kan jeg ikke få alle de smarte detaljer, som javascript muligvis har adgang til. Det er ikke rigtig det, jeg er interesseret i. Jeg vil have mere som AWstats, men med konverteringssporing.
  • @Matt - Ja, du kan videresende en hel del tilstand og oprette en session, selv for at spore brugeren. Som jeg sagde, er det ikke det samme, men du kan komme temmelig langt, hvis du lægger en indsats i det.
  • men problemet er, at blokkere filtrerer anmodning efter deres sorte url-liste, kunne det ikke være muligt, at i stedet for url peger på google analytics, i stedet peger på min egen server?, kunne google naturligvis også tilbyde en backend-konfiguration til at håndtere anmodningerne , det kunne endda være muligt ikke at pege på min egen server, men i stedet kunne dns konfigureres, så webadressen kunne være målrettet mod google servere

Jeg bruger Google Analytics på serversiden på mit websted ved at bruge CURL til at 'poste' informationen fra en besøgende på siden. Kode svarende til dette fungerer (med dine GA-koder osv.):

$url = '{$_SERVER['REQUEST_URI']}'; if (strstr($url,'/test/')) {return '200';} //no analytics for test area $thecookie = ''; // set a cookie value if (strlen($thecookie) == 0) { // if we can't create a cookie, use the sessionid $thecookie = session_id(); } $pagename = $_SERVER['REQUEST_URI']; $data = array( 'v' => 1, 'tid' => 'UA-xxxxxxxx-1', // site GA id 'cid' => $thecookie, // customer ID (cookie or session id) 't' => 'pageview', // type of access 'dp' => $_SERVER['REQUEST_URI'], // page name 'aip' => '1', //anonymize the IP address 'uip' => $_SERVER['REMOTE_ADDR'], // used for geo data in analytics 'ds' => 'web', // datasource, optional, set to 'web' 'dr' => $_SERVER['HTTP_REFERER'], // referring page 'z' => guid() , // cache buster, MUST BE LAST parameter!, a random guid-type value ); $fields_string = http_build_query($data); // uncomment next if you want to see the query sent // echo 'Sending ... ' . $fields_string . '
'; $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, utf8_encode($fields_string)); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_URL, 'https://ssl.google-analytics.com/collect'); 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_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_COOKIE, $thecookie); $response = curl_exec($ch); $info = curl_getinfo($ch); if (curl_errno($ch)) { // this would be your first hint that something went wrong // change to whatever you want to happen if CURL error // die('Couldn\'t send request: ' . curl_error($ch)); } else { // check the HTTP status code of the request $resultStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE); //echo ' curl results = $resultStatus
'; die('1259'); if ($resultStatus == 200) { // everything went better than expected // uncomment if you want to see the response code // echo 'Server GA OK; response = 200
'; } else { // the request did not complete as expected. common errors are 4xx // (not found, bad request, etc.) and 5xx (usually concerning // errors/exceptions in the remote script execution) // die('Server GA Request failed: HTTP status code: ' . $resultStatus); } } curl_close($ch); // uncomment next if you want to see all CURL respone values //echo '
';print_r($info);echo '

'; //echo 'response = ' . $response . '
';die();

Dette er min kode, som jeg også offentliggjorde på mit "SecurityDawg" -site (www.securitydawg.com).

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?

nyttige oplysninger