Der `/count`-Endpunkt gibt bei GET-Anfragen ein kleines 1x1-Pixel-GIF zurück. Sie können diesen Endpunkt direkt laden, ohne die JavaScript-Integration zu nutzen:

    <img src="{{.SiteURL}}/count?p=/test">

Oder per CSS:

    <style>
    body:hover {
        border-image: url("{{.SiteURL}}/count?p=/test");
    }
    </style>

Sie können auch eine eigene JavaScript-Integration entwickeln. Für das Senden von Daten aus dem Backend nutzen Sie bitte die [API]({{.Base}}/code/backend); `/count` ist ausschließlich für den Aufruf durch den Browser des Besuchers vorgesehen.

Das Tracking-Pixel erfasst weder Referrer noch Bildschirmgröße. Außerdem kann es die Anzahl der Bot-Anfragen erhöhen, da diese serverseitig schwerer zu filtern sind.

Binden Sie den Pixel in ein `<noscript>`-Tag ein, um ihn nur für Besucher ohne JavaScript zu verwenden:

    {{template "code" .}}
    <noscript>
        <img src="{{.SiteURL}}/count?p=/SEITE-HIER-EINTRAGEN">
    </noscript>

Sie müssen den korrekten Seitenpfad direkt im HTML-Quellcode eintragen.

Wenn Sie eine `Content-Security-Policy` verwenden, fügen Sie bitte folgendes hinzu:

    img-src {{.SiteURL}}/count

---

Der Endpunkt akzeptiert folgende Query-Parameter:

| Query | count.js   | Beschreibung                                                        |
| :---- | :--------  | :----------                                                         |
| `p`   | `path`     | Seitenpfad oder Ereignisname.                                       |
| `t`   | `title`    | Seitentitel.                                                        |
| `r`   | `referrer` | Referrer-Wert; in der Regel der Referer-Header.                     |
| `e`   | `event`    | Ereignis; als Boolean (`true`, `false`, `1`, `0`, `on`, `off`).    |
| `q`   | -          | Query-Parameter zur Kampagnenerkennung.                             |
| `s`   | -          | Bildschirmgröße als `width,height,scale`.                           |
| `b`   | -          | Markiert die Anfrage als Bot-Anfrage; Ganzzahl.                     |
| `rnd` | -          | Wird ignoriert; dient als Cache-Buster.                             |

Diese Parameter sind stabil; künftige inkompatible Änderungen werden über einen neuen Endpunkt eingeführt. Eine eigene JavaScript-Integration ist daher sicher umsetzbar, auch wenn neue Funktionen gelegentlich Anpassungen erfordern können.

`rnd` ist hilfreich, da Browser und Proxys trotz korrekter Cache-Header manchmal eigene Caching-Entscheidungen treffen.

Der Parameter `b` akzeptiert einen Ganzzahl-Konstantenwert aus der [zgo.at/isbot][isbot]-Bibliothek und sollte mindestens 150 betragen. Wie dieser Wert erkannt wird, zeigt der [count.js-Quellcode][cjs]. Aktuelle Werte:

- `150` - Phantom Headless-Browser.
- `151` - Nightmare Headless-Browser.
- `152` - Selenium Headless-Browser.
- `153` - Generischer WebDriver-basierter Headless-Browser.

[isbot]: https://github.com/arp242/isbot/blob/master/isbot.go#L46
[cjs]: https://github.com/arp242/goatcounter/blob/master/public/count.js#L54
