Blog
TYPO3: indexed_search mit Piwik tracken

Update 13.08.2018: neue Version im TER hochgeladen

Mal wieder eine kleine nette Sache aus der Entwicklerecke:

Seit dem letzten Major-Release der von mir präferierten Opensource-Webstatistik Piwik, kann dieses auch die interne Suche tracken (Stichwort: Site Search). Die geläufigsten URL-Queries (z.B. ?q=keyword) werden von Haus aus abgefangen – jedoch fehlt hier die Anzahl der Treffer für weitere Auswertungen (z.B. trefferlose Suchen). Und auch der Parameter der TYPO3-eigenen indexed_search wird von Haus aus nicht berücksichtigt (kann theoretisch aber nachkonfiguriert werden).

Da das aber unhandlich ist und ich gern mal etwas Bastelei betreibe, gibts dafür nun eine kleine Sorglos-Extension, die das Nötige unternimmt:

ms_piwik_indexedsearch

  • typo3.org/extensions/repository/view/ms_piwik_indexedsearch
  • einfach wie gewohnt installieren
  • bei jeder ausgeführten internen Suche per indexed_search wird die Piwik-Javascriptzeile piwikTracker.trackPageView(); nun mit dem nötigen piwikTracker.trackSiteSearch(); substituiert – inklusive Anzahl der Treffer
  • im Piwik-Echtzeitstream sieht das ganze dann so aus:
  • für die bessere Auswertung kann auch ein entsprechendes Widget aufs Piwik-Dashboard gelegt werden oder unter Aktionen>Interne Suche weitere Analysen vorgenommen werden

Ich freue mich über jeden Kommentar, wenn die Extension zum Einsatz kommt – und auch über Verbesserungsvorschläge (z.B. Nutzung der Kategorien).

Bitte aber keine schlauen Ratschläge bzgl. der mächtigen Solr Search ;) Bei Shared-Hosting-Paketen und überschaubaren TYPO3-Installationen genügt die indexed_search allemal. Zumal diese mit der TYPO3 4.7 auch nochmal optimiert wurde.

  1. Ede sagte am :

    Danke werde ich gleich austesten :-)

    Jo und indexed_search tut immer noch gute Dienste voll ausreichend :-)

    Beste Grüße
    Ede

  2. Ede sagte am :

    supi läuft wie ne eins die Extension …

    Sehr zu „empfehehlen“, an alle Leser (RSS dieser Seitehab ich mir gleich gespeichert).

    Vielen Dank an den Entwickler
    Ede

  3. Carsten Hager sagte am :

    Hallo,

    gibts sowas auch für die Suche Ke_Search?

    Gruß aus München

    Carsten

    • Stefan Maischner sagte am :

      Hi! Da bin ich überfragt – aber die Extension kann von euch auch gern diesbezüglich angepasst werden.

  4. Tobias Bruns sagte am :

    Damit diese Extension mit der „neuen“ JavaScript Schreibweise in Piwik funktioniert, muss man in der IndexedSearchHook.php lediglich 2 Zeilen austauschen:

    Diese Zeile:
    self::$piwikSearchCode = ‚piwikTracker.trackSiteSearch(„‚ . $searchstring . ‚“, false, ‚ . ( isset( $resData[‚count‘] ) ? $resData[‚count‘] : 0 ) . ‚);‘;

    gegen diese tauschen:
    self::$piwikSearchCode = ‚_paq.push([\’trackSiteSearch\‘, „‚ . $searchstring . ‚“, false, ‚ . ( isset( $resData[‚count‘] ) ? $resData[‚count‘] : 0 ) . ‚]);‘;

    und diese Zeile:
    $parentObj->content = str_replace( ‚piwikTracker.trackPageView();‘, $trackSiteSearch, $parentObj->content );

    Gegen diese tauschen:
    $parentObj->content = str_replace( ‚_paq.push([\’trackPageView\‘]);‘, $trackSiteSearch, $parentObj->content );

    Evt. hilft das ja dem einen oder anderen :-)

    • Stefan Maischner sagte am :

      Danke für die Unterstützung. Werde die Extension diesbezüglich in Kürze mal updaten.

  5. stooky sagte am :

    auch mit dem code von tobies tut sich bei mir nichts nada niente, es wird einefach nichts angezeigt was ich als suche eingeben. der rest läuft. super. hatte auch schon realurl unter verdacht, aber auch wenn ich realurl abschalte, dann passiert nichts. wobei ich auch nie die parameter von index searched in der url sehe. geischt wird aber und ergebnisse werden auch angezeiegt, aber eben einfach nur mit index.php?id=15 und mehr nicht. irgendiwe stehe ich voll auf dem schlauch :(

  6. Stefan Maischner sagte am :

    Ich habe soeben die Version 1.2.0 der ms_piwik_indexedsearch erstellt und hochgeladen:

    NEU:
    Unterstützt (ausschließlich) den neuen/aktuellen Piwik-Code und übergibt nun auch wieder die Anzahl der Suchtreffer:

    z.B.:
    _paq.push([‚trackSiteSearch‘, („dresden“, false, 2)];)

  7. stooky sagte am :

    hallo stefan

    erst mal vielen lieben dank … der tracking code sieht bei mir jetzt auch gut aus:

    _paq.push([‚trackSiteSearch‘, („thomas“, false, 2)];

    dennoch kommt in piwik nichts an :(
    ich wühle mich jetzt shcon wieder seti stunden durch die piwik faq / doku / forum und komme einfach nicht weiter :(

    ansonsten kommen die daten super in piwik an, nur eben die serach lewords nicht.

    any ideas?

  8. stooky sagte am :

    hallo stefan

    ich habe noch einen kleienn fehler in der letzten version der extension gefunden

    in der search hook class fehlt in zeile 56 eine schliessende klammer

    aktuelles plugin:
    self::$piwikSearchCode = ‚_paq.push([\’trackSiteSearch\‘, („‚ . $searchstring . ‚“, false, ‚ . ( isset( $resultData[‚count‘] ) ? $resultData[‚count‘] : 0 ) . ‚)];‘;

    klammer vor dem vorletzten seimkolon fehlt

    sollte sein:
    self::$piwikSearchCode = ‚_paq.push([\’trackSiteSearch\‘, („‚ . $searchstring . ‚“, false, ‚ . ( isset( $resultData[‚count‘] ) ? $resultData[‚count‘] : 0 ) . ‚)]);‘;

  9. Stefan Maischner sagte am :

    Danke dir und sorry – da hatte mich mein Adlerauge kurz getäuscht. Ein Bugfix (1.2.1) ist hochgeladen.

  10. stooky sagte am :

    hallo stefan

    mittlerweile bekomme ich ja auch interne suchergebnisse in piwik angezeit, leider nicht mit dem sword, obwohl ich meine dass es jetzt korrekt von deinem plugin übergeben wird. in piwik bekomme ich nur einfach ingtegers statt den searchstring.
    hast du eine idee dazu? an deinem plugin kann es ja IMHO nicht liegen.
    ich frickle da jetzt shcon seit gestern mittag dran und habe auch mal bei piwik im forum geposted.
    http://forum.piwik.org/read.php?15,125384

    • Stefan Maischner sagte am :

      Version 1.2.2 ist hochgeladen. Neu nun: Unterstützt beide Versionen des Tracking-Codes (alt/neu).

      Habe es auch mit beiden Varianten getestet: Es kommt jeweils im Backend an. Aber Vorsicht: Das Widget „Suchbegriffe (interne Suche)“ scheint sich zu cachen und stellt die Werte leicht verzögert dar. In der Echtzeit-Liste ist es jedoch quasi live zu sehen.

  11. stooky sagte am :

    ich habe jetzt alles noch mal resetted und neu getestet, same problem.
    dann habe ich die db gelöscht, eine neue aufgesetzt, piwik komplett vom server gelöscht und neu installiert, same problem.

    soeben kam dann die message neue pwiwk version und nach dem update … genau, same problem.

    ich bin mir zu 100% sicher, das es nicht an deiner extension liegen kann, denn das keyword wird korrekt eingetragen.

    auf der suchergebnisseite im quellcode steht dann z.b.
    _paq.push([‚trackSiteSearch‘, („test“, false, 10)]);

    aber in piwik sehe ich nicht test sondern nur die zahl 1 im report. nirgends in der db ist „test“ zu finden. suche ich dann nach was anderem dann landet in piwik ein neuer sucheintrag mit der nummer 2 statt dem keyword.

    erneute suche nach test wird dann in piwik auch angezeigt, und piwik scheint zu erkennen, dass es das selbe keyword shcon mal gab. es wird einfach im repost bei „1“ die anzahl der suche erhöht.

    very strange :(

    • Stefan Maischner sagte am :

      Hast du auch die 1.2.2 und mal im Installtool den Cache geleert?
      Ich habe das mit der Zahl auch bemerkt – und es lag an den runden Klammern. Die sind an dieser Stelle falsch. Richtig lautet die Zeile:

      _paq.push([‚trackSiteSearch‘, ‚test‘, false, 10]);

      Und die wird nun auch so generiert und damit klappt das hier im Testobjekt.

  12. stooky sagte am :

    das war es !!! hero vielen lieben dank!
    ohne die runden klammern kommen die werte jetzt als string an.

    dann habe ich auch gleich noch die doppelten hochommata durch einfache ersetzt um genau so konform zu sein wie es die piwik API es vorgibt.

    die zeile wo der string gebildet wird in deinem plugin sieht bei mir jetzt so aus:

    self::$piwikSearchCode = ‚_paq.push([\’trackSiteSearch\‘, \“ . $searchstring . ‚\‘, false, ‚ . ( isset( $resultData[‚count‘] ) ? $resultData[‚count‘] : 0 ) . ‚]);‘;

    damit läuft es perfekt.

    vielen lieben dank für deinen support.
    auch wenn es nur eine keine mini extension ist, so freut es mich sehr, dass du dich weiterhin darum kümmerst, so schnell neue versionen ins TER lädst und auch support leistest.

    virtual beer for stefan !!!

  13. J. Peters sagte am :

    Leider kommt bei uns in Piwik nichts an von der internen Suche. Ich muss dazu sagen, dass wir deine Extension auf Typo3 7.6 installiert haben (und Piwik 3.04).

    Ich fürchte es muss doch noch etwas manuell konfiguriert werden. Für einen Tipp wäre ich sehr dankbar.

    • Stefan Maischner sagte am :

      Sorry für die Verzögerung ;)
      Ich habe mal ein Update hochgeladen – aber hätte trotzdem klappen sollen. Ansonsten bitte gern mal die URL nennen und ich schaue, ob ich aus dem Quellcode schlau werde.
      PS: Für die TYPO3 8 geht es leider noch nicht wegen einer Änderung in der ext:indexed_search, die ich bereits im forge bemängelt habe. Bin gespannt, wie man die Sache dort sieht.

E-Mail-Adresse wird nicht veröffentlicht. Alle Felder sind Pflichtfelder.