The cookie table
The cookie table is the list of cookies your site sets, shown to a visitor who opens the settings panel:
one row per cookie, under the category it belongs to. It is one of three files; the
settings file holds how the banner behaves and the
language pack holds the words. It is optional, and an empty array []
is a valid start.
List every cookie your site really sets, including Consentio’s own. The table is what a visitor reads before deciding, so a name in it that your site does not set is a false statement about your own site, and a cookie you do set but leave out is the one that matters. Open the browser’s storage inspector on a page where you have accepted everything, and write down what is actually there. The cookie catalogue has rows in this shape for the tools a site commonly runs, to copy in and check against the vendor.
📄 A complete example
A flat array. Each entry is one row.
[
{
"name": "consentio",
"purpose": "Stores the answer you gave to this banner, so you are not asked again on every page.",
"provenance": "This site",
"duration": "90 days",
"category": "strictly_necessary"
},
{
"name": "_ga",
"purpose": "Tells Google Analytics one visitor apart from another.",
"provenance": "Google",
"duration": "2 years",
"category": "statistics_performance"
}
]
🍪 The keys of a row
All five are strings. Four are shown to the visitor exactly as written — nothing parses duration or
provenance — and the fifth decides where.
| Key | What it holds | Shown under |
|---|---|---|
name |
The cookie’s name as it appears in the browser | cookieTableHeaderName |
purpose |
What it is for, in words a visitor can read. It is the column they stop on | cookieTableHeaderPurpose |
provenance |
Who sets it — your site, or the name of the third party that does | cookieTableHeaderProvenance |
duration |
How long it lasts. Session if it goes when the browser closes |
cookieTableHeaderDuration |
category |
Which of the four categories the row appears under — see below | not shown |
The four column headings are words, so they live in the language pack.
📋 How a row finds its category
category is matched, spelled exactly, against one of the four keys: strictly_necessary,
preferences_functionality, statistics_performance or marketing_advertising. A row whose category
matches nothing is never shown, and nothing says so. The four are fixed, and
Settings says why.
🚀 On the HTML route
data-cookies-url on the loader tag names the file — /data/consentio-cookies.json in the install steps,
but any address your site serves. Leave the attribute out and the panel shows no table.
🏷️ On the Tag Manager route
The tag’s Cookies Variable field takes any variable that returns the rows. Two kinds do:
- A Consentio Tag - Cookies variable — the second template in the release, imported under Variable Templates as the install steps say. It is a table with the same five columns, filled in one row per cookie.
- A Custom JavaScript variable returning the array above,
function () { return [ ... ]; }— the way to paste rows from the catalogue rather than type them.
Left at None, the panel shows no table.
⚠️ When the file is missing or wrong
- No
data-cookies-url, or the variable left at None: every category’s table is empty, and nothing is said. That is what “not configured yet” looks like. - The file does not load: the banner does not start, and the console has an initialisation error naming the address.
- Every row’s
categorymatches none of the four: the file loaded and the tables are still empty. Troubleshooting is the page for that symptom.
Declaring a cookie does not stop the script that sets it. On the HTML route, Hold a script until consent is how the script waits for the category the row names.