Datasets Fields

Dimensions (8)

Account

NinjaCat System ID: datasets:DIM_ACCOUNT
Data Type: text
Aggregates To: DIM_ACCOUNT

Campaign Group

NinjaCat System ID: datasets:DIM_CampaignGroupGenerated
Data Type: text
Aggregates To: DIM_CAMPAIGN_GROUPS

Currency

NinjaCat System ID: datasets:DIM_CurrencyGenerated
Data Type: text
Aggregates To: DIM_CURRENCY

Data Source

NinjaCat System ID: datasets:DIM_DATA_SOURCE
Data Type: text
Aggregates To: DIM_DATA_SOURCE

External Id

NinjaCat System ID: datasets:DIM_EXTERNAL_ID
Data Type: text
Aggregates To: DIM_EXTERNAL_ID

Network

NinjaCat System ID: datasets:DIM_NetworkGenerated
Data Type: text
Display As: title_case
Aggregates To: DIM_NETWORK

Row

NinjaCat System ID: datasets:DIM_ROW
Data Type: text
Aggregates To: DIM_ROW

System Account ID

NinjaCat System ID: datasets:DIM_ACCOUNT_ID
Data Type: text
Aggregates To: DIM_ACCOUNT_ID

Metrics (1)

Count (Unique Dimensions)

NinjaCat System ID: datasets:MET_COUNT_NC
Data Type: integer
Aggregates To: MET_COUNT_NC

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.

ColumnWhen it appearsWhat it is
Mapping IDAlways (mapping providers)The NinjaCat mapping ID for the org, for mapping providers.
Advertiser Network IDWhen advertiser-network matchedThe internal ID for the NinjaCat advertiser-network connection.
Credential IDAlwaysThe NinjaCat ID of the credential used to pull the data.
System Account IDWhen account-matchedThe NinjaCat linked account ID. Used by reporting and for fast account matching in Transformations.
Metric DateWhen the dataset has a date dimensionThe date extracted from the configuration (usually a copy of the configured date column).
Configured Source CurrencyWhen account-matchedThe configured currency for the account, when available.
Network Account IDWhen account-matchedThe provider's account ID for the advertiser.
Advertiser NameWhen account-matchedThe account name for the matched account (sometimes prefixed with "Matched").
External IDWhen account-matchedThe account's external ID as configured in NinjaCat.
__EXECUTION_ID__AlwaysThe NinjaCat ID of the API call that pulled the data.
__EXECUTED_AT__AlwaysThe date and time the results of the API call were merged.
__ROW_ID__AlwaysA 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.


Did this page help you?