Datasets Fields
Dimensions (8)
Metrics (1)
System-Generated Columns
In addition to the native fields from your data provider, NinjaCat adds a number of system-generated columns to a dataset as it is ingested and processed. These columns power features like account matching, deduplication, and record lifecycle tracking. Many use a double-underscore naming convention (for example, __ROW_ID__), while others have friendly display names (for example, "System Account ID").
This is why an exported dataset may contain more columns than the provider's native field count — for example, a Google Ads dataset exported through Data Cloud Ship may include additional NinjaCat columns beyond the provider's own fields.
These columns are not fixed across every dataset. Which system-generated columns appear — and when — depends on factors such as the data provider, your account-match configuration, and whether the dataset has a date dimension. The "When it appears" column below makes this concrete: some columns are always added, while others appear only when an account is matched or a date dimension is present. Treat this as columns you may encounter, not a guaranteed schema on every export.
| Column | When it appears | What it is |
|---|---|---|
| Mapping ID | Always (mapping providers) | The NinjaCat mapping ID for the org, for mapping providers. |
| Advertiser Network ID | When advertiser-network matched | The internal ID for the NinjaCat advertiser-network connection. |
| Credential ID | Always | The NinjaCat ID of the credential used to pull the data. |
| System Account ID | When account-matched | The NinjaCat linked account ID. Used by reporting and for fast account matching in Transformations. |
| Metric Date | When the dataset has a date dimension | The date extracted from the configuration (usually a copy of the configured date column). |
| Configured Source Currency | When account-matched | The configured currency for the account, when available. |
| Network Account ID | When account-matched | The provider's account ID for the advertiser. |
| Advertiser Name | When account-matched | The account name for the matched account (sometimes prefixed with "Matched"). |
| External ID | When account-matched | The account's external ID as configured in NinjaCat. |
__EXECUTION_ID__ | Always | The NinjaCat ID of the API call that pulled the data. |
__EXECUTED_AT__ | Always | The date and time the results of the API call were merged. |
__ROW_ID__ | Always | A unique row ID from the API call. Note: do not rely on this for upsert/deduplication behavior — every API call produces unique IDs. |
A note on hidden columns. NinjaCat also maintains two internal lifecycle columns,
__EXPIRED_AT__and__EXPIRED_BY__, which track record expiration. These are hidden by configuration — expired rows are filtered out and these values are always empty — so they are not surfaced to users and do not normally appear in your exports. The columns listed in the table above are the ones you may see in exported data.
For the authoritative and most up-to-date list of the system columns NinjaCat may add throughout processing, see the reference maintained by the NinjaCat team: NinjaCat System-Generated Columns reference (NinjaCat sign-in required).
If you don't need these columns in your exported data, you can typically ignore or filter them out in your downstream destination.
Updated 14 days ago