Avatar billede jgivoni Nybegynder
19. oktober 2007 - 14:45 Der er 9 kommentarer

Google Analytics tracking via utmLinkPost

Er det bare mig, eller er Google forkert på den, når de skriver:

---------------------------
If you send information to your shopping cart using forms, use the __utmLinkPost() function. It appends cookie data to the provided URL of the supplied form.

<form action="http://newdomain.com/form.cgi" onSubmit="java script:__utmLinkPost(this)">

This will work even for forms where the method="GET"
---------------------------
Kilde:
http://www.google.com/support/analytics/bin/answer.py?hl=en&answer=26915

Jeg kan godt få det til at virke med method="post" med med "get" bliver Google tracking parameterne fjernet igen.
Jeg kan ikke forstå hvis jeg er den eneste med det problem!

(Lidt baggrundsinfo: Det Googles funktion __utmLinkPost() gør er at tage sine utm-cookies og føje dem til enden af action-attributten på formen som en query string. )
Avatar billede bufferzone Praktikant
20. oktober 2007 - 22:57 #1
skriv direkte til googles analytics team, de plejer at være meget hjælpsomme, jeg har selv to gange kontaktet dem og fået svar
Avatar billede olebole Juniormester
20. oktober 2007 - 23:18 #2
<ole>

Ikke fordi, det er skyld den fejl, du oplever, bør du slette 'java script:' i onsubmit-handler'en. Jeg kan godt se, Google skriver sådan, men det er komplet misforstået brug af JavaScript pseudo-protokollen. Den må ikke bruges i en event-handler  :)

Derudover er det noget vrøvl, de skriver. Hvis du tilføjer en query-streng til en forms action, vil denne ikke være at finde på serveren, hvis metoden er 'get'.

Er metoden derimod 'post', vil variablerne i query-strengen være at finde i array'et af get-variabler på serveren - samtidig med at værdierne af felterne ligger i post-array'et.

Hvis noget skal virke, skal cookie-data altså hældes ned i et eller flere felter i formen - og findes på serveren blandt get-variablerne. Prøv at teste, om det gøres dynamisk:

<form action="http://newdomain.com/form.cgi" onsubmit="__utmLinkPost(this);alert(this.innerHTML)">

/mvh
</bole>
Avatar billede olebole Juniormester
20. oktober 2007 - 23:22 #3
Hvis du laver et lille test dokument med denne form:

<form action="?bla=noget">
    <input type="text" name="blabla" value="nogetAndet">
    <button type="submit">Send</button>
</form>

- kan du se, det eneste, du ser i adresselinjen er variablen 'blabla', som er sat til værdien 'nogetAndet'. Variablen 'bla' er derimod ikke at finde
Avatar billede olebole Juniormester
20. oktober 2007 - 23:29 #4
Det er noget à la dette, der bør ske:

<script type="text/JavaScript">
function foo(oF) { // En pseudo __utmLinkPost funktion
    var o = oF.getElementsByTagName("input")[0].cloneNode();
    o.name ="bla";
    o.value ="noget";
    oF.appendChild(o);
}
</script>
<form action="" onsubmit="foo(this);alert(this.innerHTML)">
    <input type="text" name="blabla" value="nogetAndet">
    <button type="submit">Send</button>
</form>
Avatar billede jgivoni Nybegynder
21. oktober 2007 - 20:39 #5
Ja, netop, olebole, det kom jeg også frem til ville være den mest praktiske løsning; nemlig at tage de parametre Google har brug for og oprette inputfelter dynamisk. Derefter behøver vi ikke bekymre os mere om hvordan formen bliver behandlet og submittet.

Jeg undrede mig over at jeg ikke (efter en generel søgning på Google) kunne finde andre, der havde dette problem, men jeg er glad for at blive bekræftet i at der er fejl i Googles dokumentation.

Det med "java script:" i event-handleren synes jeg også var lidt åndet - nu er dette fuldstændigt overflødige 'prefix' kopieret ind på tusinde af websites :-)

Hvis du smider et svar, olebole, får du pointene.
Avatar billede erikjacobsen Ekspert
21. oktober 2007 - 20:41 #6
Ole altså " ...det er komplet misforstået brug af JavaScript pseudo-protokollen. Den må ikke bruges i en event-handler  :)"  ... Der må hjertens gerne stå "java script:" på det sted. Det betyder så ganske vist ikke ikke javascript pseudo-protokollen, som man måske tror, og hvoraf man godt kan kalde det en misforståelse. Det er blot en label, der ikke bliver brugt. Du ved godt, Ole, at man kan bruge labels i Javascript, ik'å?
Avatar billede jgivoni Nybegynder
21. oktober 2007 - 21:17 #7
Det med labels vidste jeg f.eks. ikke.

Jeg troede at man kunne skrive "java script:" for at tvinge browseren til at parse koden som javascript, og at man så også kunne skrive "vbscript:" for at indikere at følgende skulle parses som VBScript. Hvilket nok kun ville virke i IE, men alligevel...
Men det er måske helt forkert, erik?
Avatar billede erikjacobsen Ekspert
21. oktober 2007 - 21:19 #8
Nu er det jo inderligt ligegyldigt hvad IE gør. Jeg ved det ikke, og vil heller ikke vide det. Livet er for kort til browsere, der ikke i det mindste gør et ihærdigt forsøg på at overholde standarder.
Avatar billede jgivoni Nybegynder
21. oktober 2007 - 22:35 #9
Nu var det ikke det jeg spurgte om heller.

Men hvor ville det være dejligt hvis vi alle kunne leve i en fantasiverden hvor det var inderlig ligegyldigt hvad IE gør... ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester