iFrame междоменное отслеживание через GTM - PullRequest
0 голосов
/ 07 февраля 2019

Сайт моего клиента содержит форму пожертвования (https://www.resurge.org/donate/), которая является встроенным iframe от стороннего поставщика. У меня установлены отдельные контейнеры GTM на основном домене и на странице iframe, и я хочу передатьоригинальный clientId для iFrame. На родительской странице у меня есть следующий код:

<script>
setTimeout(function(){ 
  ga(function(tracker) {
    var clientId = tracker.get('clientId');
    var frameWindow = document.getElementById('my_iframe').contentWindow;
    // change https://xyz.shoppingcart.com to match your iFrame domain
    frameWindow.postMessage(clientId, 'https://app.etapestry.com'); 
  });
}, 2000); 
</script>

и в iFrame:

<script>
  window.addEventListener('message', function(event) {
    // Ignores messages from untrusted domains.
    if (event.origin != 'https://www.resurge.org') return;
    // Creates the tracker with the data from the parent page.
    ga('create', 'UA-19540393-1', 'auto', {clientId: event.data});
    ga('send', 'pageview');
  });
</script>

Отладчик GA показывает следующие результаты:

Running command: ga("create", "UA-19540393-1", {name: "gtm2", allowLinker: true, cookieDomain: "auto"})   
  Creating new tracker: gtm2 
  Auto cookieDomain found: "etapestry.com" 
Running command: ga("gtm2.set", "&gtm", "2wg1r0WMV887L") 
Running command: ga("gtm2.set", "hitCallback", [function])

Я ожидаю увидеть исходный идентификатор клиента после cookieDomain: "auto". Не уверен, что мне здесь не хватает.

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