# Containers: Matomo Matomo Tag Manager Containers
## Documentation
A Google-Tag-Manager-like container of tags, triggers and variables, one per site per context.
- Catalog: `Matomo`
- Schema: `TagManager`
- Primary Keys: `idcontainer`
- Label: Matomo Tag Manager Containers
- Retrieve: True
- Insert: True
- Update: False
- Delete: False
## Parameters of Table Function
The following parameters can be used to control the behaviour of the table function `Containers`. A value must be provided at all times for required parameters, but optional parameters in general do not need to have a value and the execution will default to a pre-defined behaviour. Values can be specified by position and by name. In both cases, all parameters not specified will be evaluated using their default values.
Value specification by position is done by listing all values from the first to the last needed value. For example: a `select * from table(value1, value2, value3)` on a table with four parameters will use the default value for the fourth parameter and the specified values for the first three.
Value specification by name is done by listing all values that require a value. For example with `select * from table(name1 => value1, name3 => value3)` on the same table will use the default values for the second and fourth parameters and the specified values for the first and third.
| Name | Data Type | Required | Default Value | Documentation |
|---|:---:|:---:|:---:|---|
| `id_site` | `number` | ☑ | | The Matomo site ID to list containers of. |
## Columns of Table Function
The columns of the table function `Containers` are shown below. Each column has an SQL data type. A new non-null value must be provided for every required column at all times during insert.
| Name | Data Type | Label | Required | Documentation |
|---|:---:|---|:---:|---|
| `activelySyncGtmDataLayer` | `int32` | | ☐ | 1 if this container actively syncs Google Tag Manager's data layer, 0 otherwise. |
| `context` | `varchar2` | | ☑ | Context the container runs in - 'web' is the only one this container has ever answered (TagManager.getAvailableContexts, measured 2026-08-25). Set on insert; Matomo's own updateContainer has no parameter to change it afterwards. |
| `created_date` | `varchar2` | | ☐ | Date and time the container was created, as returned by Matomo. Matomo does not document which time zone this is expressed in. |
| `description` | `varchar2` | | ☐ | Container description. |
| `idcontainer` | `varchar2` | | ☑ | Container ID - an 8-character identifier Matomo assigns on insert, never written. Globally unique, but every read and write against it still needs id_site alongside it (Matomo's own ContainersDao filters on both together). |
| `idsite` | `int32` | | ☑ | Site ID the container belongs to. |
| `ignoreGtmDataLayer` | `int32` | | ☐ | 1 if this container ignores an existing Google Tag Manager data layer, 0 otherwise. |
| `isTagFireLimitAllowedInPreviewMode` | `int32` | | ☐ | 1 if a tag's own fire limit is honoured in preview mode, 0 otherwise. |
| `name` | `varchar2` | | ☑ | Container name. |
| `status` | `varchar2` | | ☐ | Container status, for instance 'active'. |
| `updated_date` | `varchar2` | | ☐ | Date and time the container was last changed, as returned by Matomo. Matomo does not document which time zone this is expressed in. |