Appearance
campaign_dimension_catalog_v2
This view surfaces every unique combination of ProductLine, Product, and Campaign found in unified_performance_v2, with context about each combination's scale and platform coverage. It is the starting point for the Campaign Dimension Mapping System.
View Details
| Property | Value |
|---|---|
| Full path | paidteam-data-warehouse.customer_ads_suse.campaign_dimension_catalog_v2 |
| Source | unified_performance_v2 |
| Output rows | ~52 unique combinations |
| Created | 2026-02-09 |
Purpose
SUSE organizes performance reporting around two business hierarchies:
- Business Units (7): Cloud Native, Linux, Edge, AI, SAP, Telco, Digital Sovereignty
- Global Campaigns (5): Corporate Brand Choice, Manage & Secure, Optimize, Modernize, Innovate
The mapping between UDF-extracted dimensions (ProductLine, Product, Campaign) and these hierarchies is not derivable by rules alone. This catalog view provides:
- Discovery -- see all dimension combinations currently in the data
- Seed data -- export to Google Sheets for manual BusinessUnit/GlobalCampaign tagging (Phase 2)
- Monitoring -- detect new combinations that appear as campaigns launch
Columns
| Column | Type | Description |
|---|---|---|
ProductLine | STRING | Top-level product category (from get_product_line UDF) |
Product | STRING | Specific product (from get_product UDF) |
Campaign | STRING | Campaign-level detail (from get_subproduct UDF). Returns "None" when no sub-product found. |
PlatformCount | INT64 | Number of distinct platforms running this combination |
Platforms | STRING | Comma-separated list of platform names |
TotalSpend | FLOAT64 | Total cost in USD across all time and platforms |
TotalImpressions | INT64 | Total impressions across all time and platforms |
FirstSeen | DATE | Earliest date this combination appeared |
LastSeen | DATE | Most recent date this combination appeared |
TotalRows | INT64 | Total adlevel rows for this combination |
Example Output
| ProductLine | Product | Campaign | PlatformCount | Platforms | TotalSpend |
|---|---|---|---|---|---|
| Cloud Native | ECM | ECM | 5 | 6sense Ads, Google Ads, LinkedIn Ads, Microsoft Ads, Reddit Ads | 909,463 |
| Linux | MLS | RHEL (Freedom) | 5 | 6sense Ads, Google Ads, LinkedIn Ads, Microsoft Ads, Reddit Ads | 296,437 |
| AI | AI | AI | 3 | Google Ads, LinkedIn Ads, Microsoft Ads | 449,561 |
| Edge | Edge | Horizontal | 3 | Google Ads, LinkedIn Ads, Microsoft Ads | 451,572 |
Example Queries
View the Full Catalog
sql
SELECT *
FROM `paidteam-data-warehouse.customer_ads_suse.campaign_dimension_catalog_v2`;Top Combinations by Spend
sql
SELECT ProductLine, Product, Campaign, TotalSpend, Platforms
FROM `paidteam-data-warehouse.customer_ads_suse.campaign_dimension_catalog_v2`
ORDER BY TotalSpend DESC
LIMIT 10;Combinations Running on Only 1 Platform
sql
SELECT ProductLine, Product, Campaign, Platforms, TotalSpend
FROM `paidteam-data-warehouse.customer_ads_suse.campaign_dimension_catalog_v2`
WHERE PlatformCount = 1
ORDER BY TotalSpend DESC;Design Decisions
VIEW not TABLE
The catalog is always fresh -- new campaigns appear immediately without refresh infrastructure. Since it is consumed ad-hoc (not powering dashboards), there is no performance concern with computing ~52 rows from ~837K source rows on demand.
No BusinessUnit/GlobalCampaign Columns (Phase 1)
Ambiguous cases (e.g., "Cloud Native | ECM | SAP" -- is it BU: SAP or BU: Cloud Native?) require human judgment. Phase 2 adds a Google Sheet mapping table with these columns.
TotalSpend for Prioritization
Including spend context helps prioritize which combinations to map first in Phase 2. High-spend combinations should be mapped before low-spend niche campaigns.
Roadmap
| Phase | Description | Status |
|---|---|---|
| Phase 1 | Catalog view (this view) | Done |
| Phase 2 | Google Sheet mapping + external table + final table + unmapped monitor view | Planned |
| Phase 3 | Enrich unified_performance_v2 with BusinessUnit and GlobalCampaign columns | Planned |
Dependencies
- Source view:
unified_performance_v2(all 6 platforms, 12 UDFs) - Consumers: Ad-hoc queries, Google Sheets export (Phase 2)