Seiteninhalt vor dem Widget

Diese Datei simuliert eine Host-Seite, die das Such-Widget direkt in den DOM rendert.

Seiteninhalt nach dem Widget

Da kein iframe verwendet wird, kann sticky normal auf den Browser-Viewport reagieren.

JS API Demo

Tracking und Consent Wiki

Das Widget wird direkt in den DOM der Host-Seite eingebaut. Es setzt keinen eigenen Google Consent, sondern liest den Consent der Host-Seite. Suche, Chat und Tracking sind gesperrt, bis Google Consent Mode fuer analytics_storage den Status granted meldet.

Widget einbauen

<div
  id="wk-search-widget"
  style="min-height: 56px;"
  data-language="de"
  data-consent-privacy-link="https://www.weisseskreuz.bz.it/de/privacy"
  data-consent-privacy-link-it="https://www.crocebianca.bz.it/it/privacy"
  data-consent-banner-open-code="klaro.show();"
  data-consent-check-interval="1000"
></div>
<script src="/pfad/zum/widget.js" defer></script>

data-consent-privacy-link setzt den Link zur deutschen Datenschutzerklaerung im Consent-Hinweis des Widgets. data-consent-privacy-link-it setzt den italienischen Privacy-Link und wird bei data-language="it" bevorzugt. data-consent-banner-open-code ist JavaScript, das ausgefuehrt wird, wenn der Nutzer im Widget den Cookie-Banner der Host-Seite oeffnen soll.

Cookie-Banner verbinden

Der Code in data-consent-banner-open-code laeuft im Kontext der Host-Seite. Beispiele sind klaro.show();, UC_UI.showSecondLayer() oder ein eigenes Event wie window.dispatchEvent(new CustomEvent("open-cookie-banner")).

Consent aktualisieren

Beste Loesung: Das Cookie-Banner der Host-Seite ruft nach jeder Consent-Aenderung direkt refreshConsent auf. Dann reagiert das Widget sofort, ohne Polling.

window.WKSearchWidget.refreshConsent("#wk-search-widget", {
  source: "cookie-banner"
});

Wenn das Cookie-Banner keinen Callback anbietet, kann data-consent-check-interval als Fallback verwendet werden. Der direkte Callback per refreshConsent ist trotzdem zu bevorzugen.

Cookie-Banner z-index

Der Cookie-Banner muss visuell ueber dem Widget liegen. Setze den z-index des Cookie-Banners deshalb hoeher als den z-index des Widgets, sonst kann der Banner hinter dem geoeffneten Widget liegen oder nicht klickbar sein.

Erforderlicher Consent

Die Host-Seite muss Google Consent Mode fuer analytics_storage auf granted setzen. Das Widget liest zuerst window.google_tag_data und danach als Fallback passende dataLayer Consent-Eintraege wie gtag("consent", "update", { analytics_storage: "granted" }).

Tracking an Google Analytics senden

Das Widget sendet Tracking Events automatisch an gtag, wenn Google Analytics auf der Host-Seite vorhanden ist. Wenn stattdessen ein GTM dataLayer vorhanden ist, pusht das Widget ein Custom Event mit dem jeweiligen Eventnamen.

Tracking in der Browser Console anzeigen

window.WKSearchWidget.setTrackingDebug("#wk-search-widget", true);

// Wieder ausschalten:
window.WKSearchWidget.setTrackingDebug("#wk-search-widget", false);

Aktuelle Tracking Events

Alle Events enthalten user_identification mit der Google Analytics Client ID aus dem _ga Cookie und widget_site mit der URL der Host-Seite.

wk_search

ParameterBeschreibung
user_identificationGoogle Analytics Client ID aus dem _ga Cookie.
widget_siteURL der Host-Seite, auf der das Widget eingebunden ist.
querySuchbegriff.
query_lengthZeichenanzahl des Suchbegriffs.
word_countWortanzahl des Suchbegriffs.
semantic_ratioAnteil der semantischen Suche im Hybrid-Request.
result_countGesamte Trefferzahl.
processing_time_msVerarbeitungszeit in Millisekunden.
hitsListe aller Treffer-URLs.

wk_search_failed

ParameterBeschreibung
user_identificationGoogle Analytics Client ID aus dem _ga Cookie.
widget_siteURL der Host-Seite, auf der das Widget eingebunden ist.
querySuchbegriff.
query_lengthZeichenanzahl des Suchbegriffs.
word_countWortanzahl des Suchbegriffs.
semantic_ratioAnteil der semantischen Suche im Hybrid-Request.

wk_click

ParameterBeschreibung
user_identificationGoogle Analytics Client ID aus dem _ga Cookie.
widget_siteURL der Host-Seite, auf der das Widget eingebunden ist.
result_sourceUrsprung des Treffers: search oder ai.
position1-basierte Position des geklickten Treffers.
total_hitsAnzahl der angezeigten Treffer im aktuellen Kontext.
querySuchbegriff oder Chat-Frage, aus der die Treffer stammen.
hit_urlsListe aller aktuell angezeigten Treffer-URLs.
clicked_urlURL des geklickten Treffers.

wk_chat_message_sent

ParameterBeschreibung
user_identificationGoogle Analytics Client ID aus dem _ga Cookie.
widget_siteURL der Host-Seite, auf der das Widget eingebunden ist.
conversationBisheriger Chatverlauf, neueste Nachricht zuerst.
message_lengthZeichenanzahl der gesendeten Chat-Frage.
word_countWortanzahl der gesendeten Chat-Frage.

wk_chat_response_completed

ParameterBeschreibung
user_identificationGoogle Analytics Client ID aus dem _ga Cookie.
widget_siteURL der Host-Seite, auf der das Widget eingebunden ist.
conversationBisheriger Chatverlauf inklusive KI-Antwort, neueste Nachricht zuerst.
hitsListe aller Quellen-URLs der KI-Antwort.
answer_lengthZeichenanzahl der KI-Antwort.

wk_chat_response_failed

ParameterBeschreibung
user_identificationGoogle Analytics Client ID aus dem _ga Cookie.
widget_siteURL der Host-Seite, auf der das Widget eingebunden ist.
conversationBisheriger Chatverlauf, neueste Nachricht zuerst.

Lokale Demo