Contao-Camp 2024
Ergebnis 1 bis 9 von 9

Thema: Cookiebar: "Skript-Position" funktioniert nicht wie erwartet.

  1. #1
    Contao-Nutzer
    Registriert seit
    16.05.2013.
    Beiträge
    18

    Standard Cookiebar: "Skript-Position" funktioniert nicht wie erwartet.

    Der Tracking-Code von Google Analytics wird bislang (Website ohne Cookiebar) im Seitenlayout bei "Zusätzliche <head>-Tags" eingefügt.
    Im Quelltext der Kunden-Website steht er somit oberhalb von </head>.

    Mit Contao Cookiebar (1.9.5) soll dieser Code - wenn ein Seitenbesucher Google Analytics akzeptiert hat - ebenfalls an der gleichen Position oberhalb von </head> stehen.

    In einem Cookie-Typ "Benutzerdefiniert (Skript)" habe ich den Analytics-Tracking-Code im Feld "Skript (bestätigt)" eingefügt. Als "Skript-Position" ist "Head-Tag" ausgewählt.

    In der Cookiebar-Konfiguration ist die Position der Cookiebar in HTML "Unter dem Inhalt im Body-Tag" ausgewählt sowie die Skript-Position: "Head-Tag".

    Bei der Testinstallation (Contao 4.9.20) funktioniert die Cookie Einwilligung im Frontend zwar wie gewünscht. Die Skript-Position ist im Quelltext jedoch unterhalb des Inhalts im Body-Tag und nicht oberhalb von </head>, wie eigentlich ausgewählt.

    Funktioniert "Skript-Position" nicht richtig oder hab ich irgendwo was verkehrt gemacht??

    Gruß Klaus

  2. #2
    Contao-Nutzer
    Registriert seit
    03.06.2019.
    Beiträge
    158
    Partner-ID
    11715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Klaus,

    die Skript-Position in der Hauptkonfiguration dient zur Positionierung der Skripte, welche für die Cookiebar selber verantwortlich sind, diese Einstellung hat also nichts mit den zu blockierenden Skripten etc. zu tun.

    Die Skript-Position innerhalb des Cookie-Typen "Benutzerdefiniert (Skript)" sollte dein Skript jedoch wie beschrieben in den Head-Tag laden. Kann es vielleicht sein, dass du dein Skript zwar in den Head-Tag lädst, dieses Skript wiederum aber etwas in den Body schmeißt?

  3. #3
    Contao-Nutzer
    Registriert seit
    16.05.2013.
    Beiträge
    18

    Standard

    Hallo!

    Bei "Skript (bestätigt)" gab ich den Tracking-Code ein, wie er bislang auf der Website steht. Im Head-Tag stand davon anschließend nichts.

    Gebe ich bei "Skript (bestätigt)" testweise z.B. "XYZ" ein, dann wird nur dies zuunterst im Quelltext ausgegeben:
    HTML-Code:
    <script>var cookiebar = new ContaoCookiebar({configId:1,pageId:64,version:3,lifetime:63072000,token:'ccb_contao_token',doNotTrack:0,currentPageId:69,excludedPageIds:null,cookies:{"6":{"id":"6","type":"script","token":null,"resources":[],"scripts":[{"script":"XYZ","position":3,"confirmed":true}]}},texts:{acceptAndDisplay:'Akzeptieren und anzeigen'}});</script></body>
    </html>
    Sollte "XYZ" nicht auch in den Head-Tag geladen werden?

  4. #4
    Contao-Nutzer
    Registriert seit
    03.06.2019.
    Beiträge
    158
    Partner-ID
    11715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von lebleucleu Beitrag anzeigen
    Bei "Skript (bestätigt)" gab ich den Tracking-Code ein, wie er bislang auf der Website steht.
    Was genau stand denn vorher auf der Website? Hast du vorher den "alten" Analytics Code über das analytics_ Template geladen? Dann könntest du auch den Cookie-Typen "Benutzerdefiniert (Template)" verwenden.

    XYZ ist kein gültiger Wert. Dieses Feld darf ausschließlich JavaScript beinhalten. Also z.B.:
    Code:
    console.log('XYZ');
    Sobald der Cookie bestätigt wird, wird XYZ in der Konsole ausgegeben.

    Was spricht gegen die Einbindung von Google Analytics über den vorgesehenen Weg (Cookie-Typ "Google Analytics")?

  5. #5
    Contao-Nutzer
    Registriert seit
    16.05.2013.
    Beiträge
    18

    Standard

    Danke für Deine Erläuterung!

    Auf der Website ohne Cookiebar steht bislang dies:
    HTML-Code:
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
      
      ga('create', 'UA-123456789-1', 'auto');
      ga('set', 'anonymizeIp', true);
      ga('send', 'pageview');
    </script>
    </head>
    Im Seitenlayout ist kein Analytics-Templates ausgewählt. Stattdessen ist obiges Skript bei "Zusätzliche <head>-Tags" hinzugefügt.

    Zitat Zitat von Doi Beitrag anzeigen
    Was spricht gegen die Einbindung von Google Analytics über den vorgesehenen Weg (Cookie-Typ "Google Analytics")?
    Für diese Website läuft eine Google Ads Kampagne, die von einem externen Dienstleister betreut und via Analytics ausgewertet wird. Das Tracking funktionierte bei der Einrichtung damals erst so wie gewünscht, als der Tracking-Code vor dem schließenden Head-Tag platziert war. Deshalb war meine Überlegung "never change a running system". Beim Cookie-Typ "Google Analytics" fand ich keine Option die "Skript-Position" auszuwählen.

  6. #6
    Contao-Nutzer
    Registriert seit
    03.06.2019.
    Beiträge
    158
    Partner-ID
    11715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Okay, verstehe.

    Ich habe das gerade mal getestet, wie von dir im ersten Beitrag beschrieben.

    Cookie-Typ: "Benutzerdefiniert (Skript)"
    Skript-Position: Head-Tag
    Skript (bestätigt):
    Code:
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
      
      ga('create', 'UA-123456789-1', 'auto');
      ga('set', 'anonymizeIp', true);
      ga('send', 'pageview');
    Wenn ich das akzeptiere, wird der Code wie erwartet im Head-Platziert.
    Das andere Skript ist wie gesagt nur für die Cookiebar selbst. Sollte also alles wie von dir gewünscht funktionieren.

  7. #7
    Contao-Nutzer
    Registriert seit
    16.05.2013.
    Beiträge
    18

    Standard

    Tja, das ist wirklich sehr komisch ...
    Bei mir funktioniert es auf diese Weise ja gerade nicht!

    Das Skript steht mit diesem Code, den ich jetzt noch einmal neu eingefügt habe, nicht an der erwarteten Stelle im Head-Tag sondern wieder zuunterst:

    HTML-Code:
    <script>var cookiebar = new ContaoCookiebar({configId:1,pageId:64,version:3,lifetime:63072000,token:'ccb_contao_token',doNotTrack:0,currentPageId:67,excludedPageIds:null,cookies:{"9":{"id":"9","type":"script","token":null,"resources":[],"scripts":[{"script":"(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n  })(window,document,'script','https:\/\/www.google-analytics.com\/analytics.js','ga');\n  \n  ga('create', 'UA-123456789-1', 'auto');\n  ga('set', 'anonymizeIp', true);\n  ga('send', 'pageview');","position":3,"confirmed":true}]}},texts:{acceptAndDisplay:'Akzeptieren und anzeigen'}});</script></body>
    </html>
    Muss vielleicht irgendwo noch ein Haken gesetzt werden oder ein Eintrag in der config.yml erfolgen oder irgendein Cache geleert werden??

  8. #8
    Contao-Nutzer
    Registriert seit
    03.06.2019.
    Beiträge
    158
    Partner-ID
    11715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von lebleucleu Beitrag anzeigen
    Tja, das ist wirklich sehr komisch ...
    Bei mir funktioniert es auf diese Weise ja gerade nicht!

    Das Skript steht mit diesem Code, den ich jetzt noch einmal neu eingefügt habe, nicht an der erwarteten Stelle im Head-Tag sondern wieder zuunterst:

    HTML-Code:
    <script>var cookiebar = new ContaoCookiebar({configId:1,pageId:64,version:3,lifetime:63072000,token:'ccb_contao_token',doNotTrack:0,currentPageId:67,excludedPageIds:null,cookies:{"9":{"id":"9","type":"script","token":null,"resources":[],"scripts":[{"script":"(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n  })(window,document,'script','https:\/\/www.google-analytics.com\/analytics.js','ga');\n  \n  ga('create', 'UA-123456789-1', 'auto');\n  ga('set', 'anonymizeIp', true);\n  ga('send', 'pageview');","position":3,"confirmed":true}]}},texts:{acceptAndDisplay:'Akzeptieren und anzeigen'}});</script></body>
    </html>
    Muss vielleicht irgendwo noch ein Haken gesetzt werden oder ein Eintrag in der config.yml erfolgen oder irgendein Cache geleert werden??
    Wie gesagt, du postest hier das Skript, welches für die Cookiebar zuständig ist und nur indirekt etwas mit deinem Code zu tun hat. Solltest du dieses Skript ebenfalls im Head ausgeben wollen, kannst du dies in der Hauptkonfiguration einstellen.

    Dennoch sollte dein Analytics-Code nun zusätzlich im Head zu sehen sein, richtig?

    EDIT:
    HTML-Code:
    <script>var cookiebar = new ContaoCookiebar({configId:1,pageId:64,version:3,lifetime:63072000,token:'ccb_contao_token',doNotTrack:0,currentPageId:67,excludedPageIds:null,cookies:{"9":{"id":"9","type":"script","token":null,"resources":[],"scripts":[{"script":"(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n  })(window,document,'script','https:\/\/www.google-analytics.com\/analytics.js','ga');\n  \n  ga('create', 'UA-123456789-1', 'auto');\n  ga('set', 'anonymizeIp', true);\n  ga('send', 'pageview');","position":3,"confirmed":true}]}},texts:{acceptAndDisplay:'Akzeptieren und anzeigen'}});</script></body>
    </html>
    An dieser Stelle wird der Cookiebar, das Skript bekannt gemacht. Es wird aber nicht ausgeführt. Vielleicht führt das gerade zur Verwirrung

  9. #9
    Contao-Nutzer
    Registriert seit
    16.05.2013.
    Beiträge
    18

    Standard

    Die Erklärung ist nun offensichtlich gefunden:
    Im Seitenquelltext, den Chrome anzeigt (view-source:https://example.com), steht der Analytics-Tracking-Code nicht im Head.
    In den Chrome-Entwicklertools ist er im Head zu sehen.

    Schaut man sich also nur den Chrome-Seitenquelltext an, sieht es so aus, als sei der Tracking-Code im Head-Tag nicht geladen, obwohl er es ist ...

    Vielen Dank, Doi, für die Ausdauer bei der Klärung der Frage und natürlich für Deine Erweiterung!!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •