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 category matches 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.