2014-01-28 4 views
0

У меня есть iframe, на котором размещена сторонняя страница (которую я создаю). На этой странице у меня есть аналитика Google, как показано ниже. Однако аналитика Google не отслеживает все записи ...Google Analyttic внутри iframe

Третья страница патча перенаправляет пользователей на разные страницы в зависимости от разного времени суток. Есть ли что-то дополнительное, что нам нужно сделать для внедрения Google Analytics в iframe?

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 

    ga('create', 'UA-47306399-1', 'serviceportal.com.au'); 
    ga('send', 'pageview'); 

ответ

1

Если страница в <iframe /> элемент находится на другом домене, отличном от родительской страницы, то вы столкнетесь с проблемами (в частности, с более старыми версиями Internet Explorer). Проблема в том, что сторонние файлы cookie блокируются, когда нет правильного заголовка P3P для каждого внешнего актива, загруженного на страницу в пределах <iframe /> (включая сам документ HTML). Это эффективно разрушит ваш код отслеживания, поскольку он будет использовать сторонние файлы cookie (т. Е. Файлы cookie, созданные для доменов, контролируемых Google или любым другим поставщиком отслеживания, который вы используете).

Если это ваша проблема, я нашел два исправления.

  1. Вывод соответствующих заголовков P3P для всех активов, загружаемых внутри IFRAME, поэтому браузеры не блокируют сторонние файлы cookie.
  2. Используйте JS для связи с внутренней страницы на родительскую страницу, а затем используйте эту связь для запуска пикселей отслеживания с родительской страницы.

Мое предположение, что есть и другие способы сделать это, это то, что сработало для меня.

Также обратите внимание, что вы можете сделать так же мало, как изменить протокол, и страницы будут отображаться как в разных доменах браузером, поэтому, как правило, рекомендуется загружать IFRAME с URL-адресом, начинающимся с //, а не http:// или https://, чтобы согласовать протоколы родительской и внутренней страниц. Это просто, если они находятся в одном домене для начала.

Другое примечание ... Пожалуйста, не просто скопируйте/вставьте любое старое значение заголовка P3P в производственную среду только потому, что оно делает «сглаз» уходить в IE. Конкретные «коды кодов P3P» соответствуют реальным заявлениям о политике конфиденциальности.

+0

Я собирался опубликовать то же самое. Тем не менее, это не только более старые версии IE, но также Safari и более новые версии Firefox. Так что большая часть веб-страниц ... –

+0

Спасибо ... Что может быть заголовком P3P для iframe, который загружает страницу формы http://www.discoverychannel.com.au/shows/gold-rush/competition/ ? –

+0

@ user3218006 Это страница канала Discovery, и я предполагаю, что у вас нет доступа для редактирования ее источника. Таким образом, вы не можете изменить выходные данные заголовков на странице (но вы также не можете поместить на него свой код отслеживания). В общем случае вы можете найти заголовки, выводимые сервером в своих инструментах разработчика (на вкладке «Сеть»). Вы должны точно объяснить, что вы пытаетесь выполнить, потому что я не думаю, что получаю это. – Jasper

1

Один из SEO-гуру на моем рабочем месте был в состоянии предоставить мне советы решения

Это был факт misamtached сервера ..

Правильный код в конечном итоге быть

var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-47544250-1']); 
    _gaq.push(['_setDomainName', 'vserver.com.au']); 
    _gaq.push(['_trackPageview']); 

    (function() { 
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
    })(); 
+1

Я бы уточнил в IE, что файлы cookie правильно устанавливаются. Когда я смотрю на сетевой водопад, страницы, идущие с вашего сервера, похоже, не устанавливают файлы cookie GA (при включении IFRAMEd). Только cookie 'referrer'. Это проверено в IE 9 с использованием режима браузера IE/IE. Когда я смотрю на тот же ресурс в Chrome, я вижу, что все cookie GA установлены как ожидалось ... Это проблема, которую мой ответ пытается исправить, что будет бесполезно с вашей отчетностью, потому что IE настолько распространен. Кроме того, если я сам открою вашу страницу, то в той же конфигурации браузера IE правильно будут установлены файлы cookie GA. – Jasper

Смежные вопросы