Kiedy potrzebna jest integracja niestandardowa

Ten dział jest przeznaczony dla developerów i wdrożeniowców.

Standardowa konfiguracja modułu wystarcza w większości sklepów, ale w części wdrożeń potrzebne jest dodatkowe dostosowanie sposobu ładowania skryptów, modułów lub elementów osadzanych z innych domen.

Najczęstsze przypadki:

  • niestandardowe systemy śledzenia,
  • własne integracje JavaScript,
  • skrypty ładowane warunkowo,
  • rozwiązania osadzane przez iframe,
  • moduły zewnętrzne, które nie udostępniają własnego mechanizmu integracji ze zgodami.

W takich sytuacjach moduł SEIGI Cookie & Consent może zebrać i udostępnić informacje o zgodach, ale samo dostosowanie sposobu działania zewnętrznego kodu wymaga już pracy po stronie wdrożenia.

Co warto wiedzieć przed wdrożeniem

Najbardziej przewidywalnym modelem integracji jest komunikacja oparta na zdarzeniach i warunkowe ładowanie kodu dopiero po uzyskaniu odpowiedniej zgody.

W praktyce oznacza to, że:

  • najpierw zbierasz decyzję użytkownika,
  • następnie odczytujesz status zgód,
  • dopiero później uruchamiasz skrypty analityczne, marketingowe lub personalizacyjne.

To podejście jest szczególnie ważne w przypadku własnych integracji, ponieważ sztuczne opóźnienia nie rozwiązują wszystkich problemów związanych z kolejnością ładowania kodu.

Jeżeli zewnętrzny system korzysta z innej domeny, moduł nie ma pełnej kontroli nad ciasteczkami ustawianymi poza domeną sklepu.

Dotyczy to szczególnie rozwiązań działających przez iframe albo skrypty osadzane z obcych domen. W takich przypadkach poprawna implementacja zwykle wymaga warunkowego ładowania kodu po akceptacji odpowiedniej kategorii zgód.

Domena sub.seigi.eu seigi.eu google.com
.sub.seigi.eu Tak - -
sub.seigi.eu Tak - -
.seigi.eu Tak Tak -
seigi.eu - Tak -
google.com - - Tak
.google.com - - Tak

Odczyt zgód po stronie JavaScript

Jeżeli chcesz reagować na akceptację zgód po stronie przeglądarki, możesz nasłuchiwać zdarzeń emitowanych przez moduł.

document.addEventListener('SeigiCookieEventAcceptedNecessary', function () {
    console.log('Accepted Necessary');
});

document.addEventListener('SeigiCookieEventAcceptedAnalytics', function () {
    console.log('Accepted Analytics');
});

document.addEventListener('SeigiCookieEventAcceptedTargeting', function () {
    console.log('Accepted Targeting');
});

document.addEventListener('SeigiCookieEventAcceptedPersonalizationSite', function () {
    console.log('Accepted PersonalizationSite');
});

document.addEventListener('SeigiCookieEventAcceptedSecurity', function () {
    console.log('Accepted Security');
});

To podejście pozwala uruchamiać własne skrypty dopiero wtedy, gdy użytkownik zaakceptował odpowiednią kategorię.

Odczyt zgód po stronie PHP

Jeżeli potrzebujesz dodać kod warunkowo już podczas renderowania strony, możesz odczytać zgody w PHP.

public function hookDisplayHeader($params)
{
    seigicookie::isAccepted('necessary');
    seigicookie::isAccepted('analytics');
    seigicookie::isAccepted('targeting');
    seigicookie::isAccepted('person_site');
    seigicookie::isAccepted('security');

    if (seigicookie::isAccepted('necessary')) {
        echo 'Użytkownik zaakceptował niezbędne zgody.';
    }

    if (seigicookie::isAccepted('analytics')) {
        echo 'Użytkownik zaakceptował zgodę na analitykę.';
    }
}

Przykład praktyczny: warunkowe ładowanie analityki

public function hookDisplayHeader($params)
{
    if (!seigicookie::isAccepted('analytics')) {
        return '';
    }

    return '<script src="https://example.com/my_analytics.js"></script>
    <script>
    const analytics = new my_analytics("ID_12345");
    analytics.track("pageview");
    </script>';
}

W takim modelu kod analityczny zostanie dodany dopiero po uzyskaniu zgody na analitykę.

Odczyt zgód po stronie Smarty

<p>necessary {if seigicookie::isAccepted('necessary')}Accepted{else}Denied{/if}</p>
<p>analytics {if seigicookie::isAccepted('analytics')}Accepted{else}Denied{/if}</p>
<p>targeting {if seigicookie::isAccepted('targeting')}Accepted{else}Denied{/if}</p>
<p>person_site {if seigicookie::isAccepted('person_site')}Accepted{else}Denied{/if}</p>
<p>security {if seigicookie::isAccepted('security')}Accepted{else}Denied{/if}</p>

{if seigicookie::isAccepted('analytics')}
    <script src="https://example.com/my_analytics.js"></script>
    <script>
        const analytics = new my_analytics('ID_12345');
        analytics.track('pageview');
    </script>
{/if}

To rozwiązanie sprawdza się wtedy, gdy elementy lub skrypty mają być renderowane wyłącznie dla użytkowników, którzy wyrazili odpowiednią zgodę.

Ważne ograniczenie przy modułach zewnętrznych

SEIGI Cookie & Consent udostępnia mechanizmy odczytu zgód i komunikacji po stronie JavaScript, PHP oraz Smarty, ale nie może automatycznie dostosować wszystkich modułów innych producentów.

Powód jest prosty: zewnętrzne moduły analityczne, marketingowe i integracyjne bardzo często nie udostępniają wspólnego, ustandaryzowanego API, które pozwalałoby nimi centralnie sterować.

Dlatego:

  • moduł może przekazać informację o zgodzie,
  • ale wdrożenie warunkowego ładowania kodu po stronie innych rozwiązań zwykle wymaga indywidualnej implementacji,
  • pełną, dwustronną kompatybilność możemy zapewnić przede wszystkim w ramach rozwiązań z portfolio SEIGI.

Kiedy warto przejść na SEIGI Tag Manager

Jeżeli w sklepie działa wiele integracji analitycznych, marketingowych lub reklamowych, utrzymywanie niestandardowych warunków w osobnych modułach zwykle zwiększa koszt wdrożenia i utrudnia dalsze utrzymanie.

Dlatego w bardziej rozbudowanych projektach rekomendowanym wariantem jest przejście na SEIGI Tag Manager GA4 albo SEIGI Tag Manager GTM, gdzie komunikacja między zgodami a uruchamianiem tagów jest bardziej uporządkowana i nie wymaga budowania własnych obejść w wielu miejscach.