Google Analytics и iFrame - PullRequest
       11

Google Analytics и iFrame

3 голосов
/ 14 сентября 2009

Итак, у меня есть простая страница, и когда пользователь нажимает на ссылку, открывается iframe. Я пытаюсь использовать

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

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

Внутри iframe - но кажется, что он не работает? Я прочитал эту страницу

code.google.com / APIs / аналитика / документы / слежение / gaTrackingSite.html # trackingIFrames

И кажется, что я использую "iframe.src = pageTracker._getLinkerUrl", чтобы передать некоторую информацию о куки в iframe - проблема в том, что я хочу отслеживать вещи внутри iframe (например, такие как события и т.д.), и я получаю ошибка "pageTracker не определен".

Нужно ли включать что-то вроде

<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>

внутри iFrame - чтобы заставить pageTracker работать. Я так понимаю, что идентификатор «Publisher UA-XXXXX-X» будет передан через куки и все будет работать?

Любые идеи

1 Ответ

8 голосов
/ 15 декабря 2009

Да, вы должны включить стандартный шаблон GA внутри страницы в рамке

<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>

Браузеры рассматривают каждый кадр как отдельное окно со своей отдельной средой dom и javascript, поэтому для доступа к pageTracker на странице в рамке необходимо также включить скрипт ga.js на этой странице.

Обратите внимание, что вам также нужно добавить

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

Так что объект pageTracker фактически определен. Наконец, обратите внимание, что два объекта javascript pageTracker как на странице с рамкой, так и на странице рамки, хотя они имеют один и тот же идентификатор, являются разными объектами JS. Это результат того факта, что JS сохраняет каждый кадр в своем собственном объекте окна, что практически означает область действия JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...