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.
Ograniczenia techniczne i domeny cookie
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.
Dostępność plików cookie w zależności od domeny
| 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.