Отправка события Google Analytics из iframe?

У меня есть веб-приложение, которое представляет собой одну страницу с iframe. Страница и iframe имеют один и тот же источник. Я пытаюсь отправить событие в Google Analytics из iframe следующим образом:

if(typeof parent.ga !== 'undefined') parent.ga('send','event', Category, Action, Label );

Я также пробовал этот подход:

if(typeof parent.ga !== 'undefined') parent.sendGaEvent(Category, Action, Label);

А в родительском функция выглядит так:

function sendGaEvent(Category, Action, Label){
   ga('send','event', Category, Action, Label);
}

Кажется, ни один из этих подходов не работает. События не отображаются в Google Analytics. Однако, если я отправлю событие, как указано выше, от родителя iframe, оно сработает. Что я делаю не так?


person Koto    schedule 27.02.2017    source источник


Ответы (1)


Здесь вам нужно добиться общения между родителями и детьми. Если iframe находится в другом домене и у вас есть контроль над ним, вы можете использовать обмен почтовыми сообщениями между доменами. Пожалуйста, перейдите по ссылке http://blog.teamtreehouse.com/cross-domain-messaging-with-postmessage

person Shakti Phartiyal    schedule 27.02.2017
comment
после получения сообщения iframe может отправить запрос на сервер Google. - person Shakti Phartiyal; 27.02.2017
comment
Зачем мне междоменный обмен сообщениями? iframe просто отображает другой .html с того же сервера. Это считается другим доменом? - person Koto; 27.02.2017
comment
Нет, это не означает, что перекрестный домен является источником (доменом) и совпадением протоколов (http / https), тогда вы можете просто отправить событие в iframe, который инициирует вызов Google Analytics. Просмотрите пример здесь dyn-web.com/tutorials/iframes /refs/iframe-iframe.php - person Shakti Phartiyal; 27.02.2017
comment
спасибо за этот ответ. Знаете ли вы, почему нельзя отслеживать события из iframe в том же домене? это все еще так в 2020 году? - person Crashalot; 09.08.2020