---
title: How It Works
url: "https://b13.com/products/vg-wort-pro-for-typo3/documentation/how-it-works"
date: 2026-09-19
modified: 2026-09-19
lastUpdated: 2026-09-19
---

# How It Works

![Black icon featuring a stylized letter "A" with sparkles, set against a light blue and green abstract background.](https://b13.com/fileadmin/_processed_/c/d/csm_sharing-ext-VGWortPro-S_9821f76de1.webp)

 Documentation
===============

 TYPO3 Extension “VG Wort Pro”
 Version 0.10.0 (2026-09-19)

   Pixel to payout
-----------------

     Copy

```
  pool          page              frontend            VG Wort
  ────          ────              ────────            ───────
  pixel    →    assigned     →    delivered      →    accesses counted
                to a page         in the HTML         over the year
                   │
                   ↓
              text extracted from the delivered page
                   │
                   ↓
              report (extract + URLs + authors)  →   accepted
                                                          │
                                                          ↓
                                            minimum access count reached
                                                    in a year
                                                          │
                                                          ↓
                                                      payout
```

  Two things are worth reading off that picture.

**The pixel and the report are independent.** The pixel counts from the moment it is delivered, whether or not anything was reported. The report only says which text those counts belong to and who wrote it.

**One report keeps earning.** A text is reported once. In every later year in which the pixel reaches the minimum access count again, it pays out again—there is no yearly re-reporting.

   The states a page moves through
---------------------------------

| Status | Meaning |
|---|---|
| (empty) | No text prepared. The page may still carry a pixel and count. |
| `draft` | Text extracted and stored, not sent. Editable. |
| `submitted` | Reported to VG Wort. Nothing about it can be changed any more. |
| `error` | The API refused the report. The reason is on the page record. |
| `manual` | Reported outside this extension, recorded here for completeness. |
| `rejected` | VG Wort rejected the report in their manual review and retired the pixel. |

A `submitted` text is final. VG Wort states it plainly: "Einmal versandte Meldungen können nicht mehr korrigiert werden." The module will show you that a text changed after it was reported; it cannot transmit the change.

   The numbers that decide money
-------------------------------

|  |  |
|---|---|
| **1,800 characters** | Below this a text cannot be reported at all. Counted with spaces, over the whole text—for a bundled text over all its parts together. |
| **10,000 characters** | From here VG Wort accepts the report once the pixel reached **half** the minimum access count. The longer text has the lower bar, not the higher one. |
| **Minimum access count** | Set by VG Wort per year, not part of this extension. It decides payout, never acceptance—a report is accepted before any access is counted. |
| **Reporting deadline** | 1 June up to and including the 2026 distribution, **31 March from 2027 onwards**. |

Both lengths live in one place, `Classes/Domain/ReportingThresholds.php`, with the passage they come from and the date it was checked. They are VG Wort’s numbers and they change.

**A text that crosses the 10,000 line after it was reported needs a different pixel.** This extension does not perform that swap for you.

   A pixel that is not delivered counts nothing
----------------------------------------------

This is the failure that looks like success. The page is fine, the backend is green, the pixel is in the field—and the HTML does not contain it, so nothing is ever counted.

The usual cause is TypoScript order. The site set of this extension adds `page.1` to an **existing** page object, and site sets are included **before** `sys_template` records. A site package that defines its own `page = PAGE` in a sys\_template replaces the page object afterwards, and the pixel goes with it.

Define the page object in a site set that this one depends on, or make sure your own TypoScript does not reset `page`.

Because of that, preparing a text does not assume delivery, it checks it: the extracted response is searched for the pixel the text is supposed to carry. A page that did not deliver it is named in the module and cannot be reported until it does. The same check catches a mistyped code, an unexpected `tx_vgwort_ignore`, and a template that drops the pixel for one page type only.

  ![A prepared text marked in red because the page did not deliver its counting pixel when it was fetched: its accesses are not counted, and the text cannot be submitted until it does.](https://b13.com/fileadmin/_processed_/2/3/csm_Documentation-Images-pixel-not-delivered_b3d7dfe477.webp)

   Where the boundary to the free extension runs
-----------------------------------------------

[`b13/vgwort`](https://github.com/b13/vgwort) holds the pixel field on pages, renders the pixel, and offers an overview in the Info module. Everything else—where pixels come from, which are still free, what text belongs to a pixel, who wrote it, and the report itself—is this extension.

 How It Works