Сайт моего клиента содержит форму пожертвования (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", ">m", "2wg1r0WMV887L")
Running command: ga("gtm2.set", "hitCallback", [function])
Я ожидаю увидеть исходный идентификатор клиента после cookieDomain: "auto"
. Не уверен, что мне здесь не хватает.