2009-09-14 4 views
3

J'ai donc une page simple et lorsqu'un utilisateur clique sur un lien, une iframe s'ouvre. Je suis en train d'utiliser leGoogle Analytics & iFrame

http://www.google.com/support/analytics/bin/answer.py?hl=en&answer=55527

pageTracker._trackPageview('/outgoing/example.com'); 

A l'intérieur du iframe - mais il semble que sa ne fonctionne pas? J'ai lu cette page

code.google.com/apis/analytics/docs/tracking/gaTrackingSite.html#trackingIFrames

Et il semble que j'utilise le « iframe.src = pageTracker._getLinkerUrl » pour passer quelques informations de cookie à l'iframe - le problème est que je veux suivre des choses à l'intérieur de l'iframe (c'est-à-dire comme des événements etc) et j'obtiens une erreur "pageTracker is undefined".

Ai-je besoin d'inclure quelque chose comme

<script type="text/javascript"> 
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
    </script> 

à l'intérieur du iFrame - pour obtenir le pageTracker de travailler. Je suppose que l'identifiant «Publisher UA-XXXXX-X» sera transmis via des cookies et que tout fonctionnera?

Toutes les idées

+0

Vos pages sont-elles sur le même sous-domaine? – Liam

Répondre

8

Oui, vous devez inclure le code boilerplate GA dans votre page encadrée

<script type="text/javascript"> 
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
</script> 

Browsers considèrent chaque cadre comme une fenêtre séparée avec son dom séparé et javascript environnement, de sorte pour pouvoir accéder à pageTracker dans la page encadrée, vous devez également inclure le script ga.js dans cette page.

Notez que vous aurez également besoin d'ajouter

<script type="text/javascript"> 
try { 
    var pageTracker = _gat._getTracker("UA-XXXXXX-X"); 
} catch(err) {} 
</script> 

Alors que l'objet pageTracker est réellement défini. Enfin, veuillez également noter que les deux objets javascript pageTracker à la fois sur la page encadrée et sur la page de cadrage, bien qu'ils aient le même identifiant, sont des objets JS différents. C'est le résultat du fait que JS garde chaque image dans son propre objet de fenêtre, ce qui signifie pratiquement une portée JS.

Questions connexes