Przejdź do treści

GTM. Zmienna sandboxed iframes. Pomiar w iframe bramki płatności i widgetów.

Na czym to polega w sklepie

Ustawienie Sandboxed iframes w kontenerze GTM określa, czy tagi mogą czytać dataLayer z osadzonych iframe. Przy embedzie bramki płatności lub widgetu w sandboxie domyślna izolacja blokuje eventy - musisz świadomie skonfigurować komunikację parent ↔ iframe (postMessage) zamiast bezpośredniego GTM w sandboxie.

Przykład ze sklepu internetowego

Bramka płatności w iframe na checkout - purchase wysyłasz z parent page po callbacku:

// Parent (checkout.sklep.pl) - po sukcesie płatności z iframe:
window.addEventListener("message", function(event) {
  if (event.origin !== "https://platnosci.partner.pl") return;
  if (event.data.type === "payment_success") {
    dataLayer.push({
      event: "purchase",
      ecommerce: {
        transaction_id: event.data.orderId,
        value: event.data.amount,
        currency: "PLN",
        items: event.data.items,
      },
    });
  }
});

// GTM: trigger Custom Event "purchase" - nie tag wewnątrz sandbox iframe

Co zrobić po stronie biznesu

  • Widget Raty / PayPo w iframe - konwersja na stronie rodzica.
  • Osadzony kalkulator dostawy bez dostępu GTM do parent dataLayer.
  • Review widget Trustpilot - oddzielny pomiar kliknięć poza iframe.

W skrócie

Nie instaluj pełnego GTM w sandboxowanym iframe płatności. Kontrakt postMessage + jeden tag purchase na stronie potwierdzenia.