Contact support

We reply by e-mail, usually within two days.

Google reCAPTCHA checks this submission against abuse; data is sent to Google. The script loads only when this form is opened.

Visitor counter guides for your platform

Where the code goes depends on where your page lives. Pick your platform: each guide has the exact steps, the right form of the code and what to watch out for.

Choose your platform

One counter, four tabs of code

HTML – the default, a short script. Besides counting, it reports which of your pages was visited.
<script src="https://www.stats4u.net/s4u.js"
        data-id="12345" data-style="3903" async></script>
HTML <img> – a plain picture with a link. Works wherever pictures from other websites are allowed, even where scripts are removed.
<a href="https://www.stats4u.net/live/12345"><img src="https://www.stats4u.net/c/12345-3300.png" alt="Visitor counter"></a>
Markdown – the same picture for editors that take Markdown.
[![Visitor counter](https://www.stats4u.net/c/12345-3300.png)](https://www.stats4u.net/live/12345)
BBCode – for forums and profiles that only accept BBCode.
[url=https://www.stats4u.net/live/12345][img]https://www.stats4u.net/c/12345-3306.png[/img][/url]

The wizard shows these four tabs right above your code. In this example the counter number is 12345 and the design is a sample. The wizard gives you your own number and the design you pick.

Choose a counter

See every place a counter can go on a sample blog

Website insights

Measurements run only for features you enable. Saving disabled settings stops future collection.

Notes are private by default. Public notes are visible to everyone who can view the statistics.

Use short campaign labels without names, email addresses or customer IDs. Campaign values are limited; unrecognized values are ignored.

Choose two to eight steps. Use page:/contact or event:contact, one per line. Steps must occur in order within a visit; other activity may occur between them. A visit ends after thirty minutes of inactivity or at the day boundary. Reports count visits, not unique people.

Only action categories and names are counted. No phone numbers, email addresses or form field values are sent. A submitted form does not prove success. Confirm success with s4u.formSuccess('contact') or a supported WordPress form integration.

<form data-s4u-form="contact">…</form>
s4u.formSuccess('contact');

Sales

Connect the shop using its counter number and shop secret. Report only confirmed payments and refunds. Net sales are paid amounts less refunds; counts of paid orders remain unchanged by refunds.

My dashboard

Choose which reports appear and in what order. Hidden cards are not loaded. The arrangement is private; readers use the standard arrangement.

Saved views

Save the current period and supported filters for another visit. Only the owner can see saved views. Relative periods move with the date; custom start and end dates stay fixed.

Page groups

Group related pages, for example /blog/* for the blog. The final * matches paths starting with that prefix. Up to ten groups with eight rules each are supported. Groups may overlap, so their visitor counts must not be added together.

Page views use available stored page totals and may include bots according to the counter setting. Group visitors and goals start being recorded when the group is created. Visitors count once per group per day, not once across the entire period.

Event properties

Define up to ten property names and up to twenty allowed values per property before sending them. Use fixed categories such as plan=basic, never names, email addresses, order numbers or form input. Each property is counted separately; combinations are not inferred.

At most five properties are accepted per event and 500 event/property/value combinations per counter/day.

Example: s4u.event('signup', {plan: 'basic'}). HTML: data-s4u-props='{"plan":"basic"}'. Existing calls with a counter number still work.

Core Web Vitals

Measures loading (LCP), response to interactions (INP) and layout shifts (CLS) in supported browsers. Missing measurements are not zero. No INP is reported without interaction. Measurements start after enabling.

The 75th percentile is estimated from bounded histogram buckets. Up to 100 page/device combinations are retained per counter/day. Values at the last bucket mean at least that value. Browser measurements do not include all cross-origin iframe activity and are not identical to Google's CrUX data.

Enable optional Web Vitals measurement

Website statistics report

Choose a period and cards, then use your browser's print dialog to print or save a PDF. Owner-only notes are included only when opened with the owner key.

Dashboard and tools

Connect your own counter with its owner key. You can also paste the complete management link. Connected counters are remembered in this browser session; changing the owner key removes access.

My counters

Scheduled reports

Choose a saved view and weekly or monthly delivery to your confirmed owner email address. Filters and selected reports are reused; the report covers the previous complete week or month in the counter's timezone. Private notes are omitted. No mail is sent until you enable a schedule.

Embed a statistics card

Choose one report and its filters. The generated iframe uses a separate read-only key, expires on the selected date and can be revoked here. Private notes and owner actions are never included.

Statistics API

Create a separate read-only API key with selected reports. Send it as an Authorization: Bearer header; never use your owner key in scripts. API keys can be revoked and expire. JSON and CSV contain aggregate data only.

Exports cover at most 400 days and 500 rows per report. Counts of visitors and goal visitors are daily totals; overlapping groups must not be added together. Web Vitals percentiles use histogram estimates and require enough samples.