Last updated: March 18, 2026
What Are Table Groups?
A table group is a collection of related tables for a single platform. Each table group belongs to one platform (e.g., Meta Ads, Google Ads, Shopify), and each table in the group defines a specific dataset to sync — with its own metrics, dimensions, filters, and sync settings.
Think of a table group as a schema definition: “For Meta Ads, I want these 4 tables with these specific fields.” When you create a transfer, you bind a table group to a destination and a schedule.
Why Groups?
Table groups let you:
- Reuse definitions — The same table group can be used by multiple transfers (e.g., sync the same tables for different accounts or to different destinations)
- Organize logically — Group related tables together (campaign metrics + ad metrics + audience breakdowns)
- Mix sync modes — When creating a transfer, you assign a sync mode to each table, so you can combine incremental daily metrics with full refresh settings data in one transfer
Creating a Table Group
- Go to Data Warehouse → Tables
- Click New Table Group
- Select the platform (e.g., Meta Ads, Google Analytics 4, Shopify)
- Choose your starting point:
Premade Presets
Detrics offers premade table groups with pre-configured metrics and dimensions for common use cases. Presets come in three tiers:
| Tier | Description | Best For |
|---|
| Light | Essential metrics only, minimal tables | Quick setup, simple reporting |
| Standard | Balanced coverage, recommended defaults | Most use cases |
| Enhanced | Comprehensive coverage, detailed breakdowns | Deep analysis, granular reporting |
You can customize any premade group after creating it — add or remove tables and change fields.
From Scratch
Start with an empty group and build each table manually. Best when you know exactly which fields you need or when working with platforms where premade presets don’t cover your use case.
Configuring Tables
Each table in a group maps to one BigQuery table. Here’s what you configure:
Table Name
The name that will be used for the BigQuery table. Must be unique within the table group. Names are converted to snake_case automatically (e.g., “Campaign Performance” becomes campaign_performance).
If you set a table name prefix on the transfer (e.g., meta_ads_), the final BigQuery table name will be meta_ads_campaign_performance.
Metrics
Quantitative fields to include — the numbers you want to analyze. Examples:
- Advertising: spend, impressions, clicks, conversions, ctr, cpc, cpm, roas
- E-commerce: gross_sales, order_count, average_order_value, refund_amount
- Analytics: sessions, total_users, new_users, bounce_rate, engagement_rate
- Email: email_opens, email_clicks, unsubscribes, revenue_per_recipient
The field picker shows all available metrics for the selected platform, organized by category. Use the search bar to find specific fields quickly.
Dimensions
Categorical fields that define the granularity of your data — how rows are grouped. Examples:
- Common: campaign_name, ad_name, date, country, device
- E-commerce: product_title, product_type, order_status
- Analytics: source_medium, landing_page, page_path
The dimensions you choose determine how many rows your table will have. Adding more dimensions creates more granular (and larger) tables. Start with the dimensions you actually need for analysis and add more later if needed.
Time Aggregation
How data is grouped over time:
| Aggregation | Row Granularity | Example |
|---|
| Daily | One row per day per unique dimension combination | Campaign “Summer Sale” on 2026-03-15 |
| Weekly | One row per ISO week | Campaign “Summer Sale” in week 12 |
| Monthly | One row per calendar month | Campaign “Summer Sale” in March 2026 |
| Hourly | One row per hour (where supported) | Campaign “Summer Sale” at 14:00 on 2026-03-15 |
| Total | One row per unique dimension combination (no date) | Campaign “Summer Sale” all-time total |
Incremental sync mode (assigned at the transfer level) requires Daily time aggregation. If you need weekly, monthly, hourly, or total aggregation, use Full Refresh or Full Append.
Historical Sync Range
How far back to fetch data on the initial sync. Options: 1 month, 3 months, 6 months, 12 months, 24 months, or all time.
Filters
Optional conditions to narrow the data. For example:
campaign_name CONTAINS "Brand" — Only sync branded campaigns
spend GREATER_THAN 0 — Only sync rows with actual spend
country EQUALS "US" — Only sync US data
Available filter operators:
| Operator | Description |
|---|
EQUALS | Exact match |
DOES_NOT_EQUAL | Excludes exact match |
CONTAINS | Substring match |
DOES_NOT_CONTAIN | Excludes substring match |
GREATER_THAN | Numeric greater than |
LESS_THAN | Numeric less than |
GREATER_OR_EQUAL | Numeric greater than or equal |
SMALLER_OR_EQUAL | Numeric less than or equal |
REGEX_CONTAINS | Regular expression match |
REGEX_CONTAINS_EXACT | Exact regular expression match |
Filters can be combined with AND or OR logic.
Filters are applied at the platform API level, not in BigQuery. This means filtered-out rows are never fetched or stored, reducing sync time and storage costs.
Data Preview
Before creating or saving a table, you can preview the data it will produce. Click Preview to fetch a sample of rows using the current configuration. This helps you verify that the right fields and filters are selected before running a full sync.
Editing Tables After Creation
You can edit any table at any time. Before saving, Detrics shows a change preview that classifies each change and warns you about its impact. Here’s what happens for each type of change:
Safe changes
- Adding new metrics — New metric columns are added to the BigQuery table on the next sync. Existing rows will have
NULL for the new columns until they are refreshed within the sync window. No resync is triggered automatically — if you want the new metric backfilled for all historical data, run a manual resync.
Column drop changes
- Removing metrics — The removed column is dropped from the BigQuery table via a schema migration. Existing data in that column is permanently deleted. The remaining columns and their data are preserved.
Breaking changes (automatic resync)
These changes alter the row granularity of your data — the existing rows become incompatible with the new table structure. When you save a breaking change, Detrics automatically:
- Marks the table for resync
- On the next sync, recreates the BigQuery table with the new schema (old data is discarded, not copied, since it has incompatible granularity)
- Runs a full historical resync to populate the table with fresh data at the correct granularity
- Adding or removing dimensions — Dimensions define how rows are grouped. Adding a dimension creates more rows with finer breakdowns; removing one aggregates data into fewer rows. Either way, the old row structure no longer matches.
- Changing time aggregation — Changing from Daily to Weekly (or vice versa) changes how data is bucketed over time. The existing rows don’t match the new aggregation level. Note: incremental sync mode only supports daily aggregation, so switching to any other aggregation (weekly, monthly, etc.) will also automatically downgrade the sync mode to Full Refresh.
Configuration changes
These take effect on the next sync without any schema or data migration:
- Changing filters — Applied on the next sync. For full data coherency with the new filters, run a historical resync manually.
- Changing sync mode — Takes effect on the next sync.
- Changing refresh window — Takes effect on the next sync.
- Changing historical sync range — Takes effect on the next resync.
- Changing platform-specific options — Applied on the next sync.
Duplicating and Copying
- Duplicate a table group — Creates a copy of the entire group with all its tables, useful for creating variations (e.g., same fields but different filters)
- Copy a table — Creates a copy of a single table within the same group or to a different group