Appearance
Naming Conventions
This page documents the naming conventions used throughout the SUSE Paid Advertising Data Warehouse V2, covering campaign names, table names, view names, and UDF names.
Campaign Naming Convention
Campaign names encode metadata in a pipe-separated format. This is the naming convention used by the paid media team when creating campaigns on advertising platforms.
Standard Format
SUSE | {CHANNEL} | {GEO} | {TIER} | {LANGUAGE} | {PRODUCT_LINE} | {PRODUCT} | {SUBPRODUCT}Field Reference
| Position | Field | Example Values |
|---|---|---|
| 1 | Brand | SUSE (always) |
| 2 | Channel | SRCH, PSOC, DISP, NAT, VID, DGEN, PMAX, YT, BUILD |
| 3 | Geography | NA, EMEA, APAC, LATAM, EMEA APAC LATAM |
| 4 | Tier | T1, T2, T1+2, T1+2+3 |
| 5 | Language | EN, DE, FR, ES, PT, IT, JA, KO, ZH |
| 6 | Product Line | Linux, Cloud Native, AI, Edge, Digital Sovereignty, All |
| 7 | Product | SLES, Rancher, Rancher AWS, MLS, Edge, ECM, Telco, Kubernetes, All |
| 8 | Sub-Product | Free text (optional) |
Example
SUSE | SRCH | NA | T1 | EN | Linux | SLES | BrandThis tells us:
- Channel: Search
- Geo: North America
- Tier: Tier 1 markets
- Language: English
- Product Line: Linux
- Product: SLES
- Sub-Product: Brand campaigns
Platform Variations
Not all platforms follow this exact format. The UDFs handle platform-specific differences:
- StackAdapt uses underscore-delimited naming and
Tier Ninstead ofTN - 6sense uses underscore-delimited naming
- Reddit has a modified field order
- LinkedIn may use slightly different field positions
Ad/Creative Naming Convention
Ad and creative names use a code-prefixed format:
{CAMPAIGN_CODE} | {CONTENT_NAME} | {DIMENSIONS} | {VERSION}Example
0005547 | gartner_webinar | 1200x628 | v2- Campaign Code:
0005547(links to internal campaign management) - Content Name:
gartner_webinar(human-readable content identifier) - Dimensions:
1200x628(creative asset size in pixels) - Version:
v2(creative version number)
Variations exist -- see get_content_name for the full set of patterns.
Table Naming
Pattern
suse_{platform}_{type}_{layer}_v2Components
| Component | Values | Description |
|---|---|---|
suse | Always suse | Project prefix |
{platform} | google, microsoft, linkedin, reddit, 6sense, stackadapt | Advertising platform |
{type} | adlevel, creative | Data type |
{layer} | staging, final | Processing layer |
v2 | Always v2 | Version identifier |
Examples
| Table Name | Description |
|---|---|
suse_google_adlevel_staging_v2 | Google ad-level data as written by Dataslayer |
suse_google_adlevel_final_v2 | Google ad-level data after refresh (partitioned, historical) |
suse_linkedin_creative_staging_v2 | LinkedIn creative metadata from Dataslayer |
suse_linkedin_creative_final_v2 | LinkedIn creative metadata after MERGE (lookup table) |
Layer Descriptions
- staging -- Raw data written by the ingestion tool (Dataslayer). Overwritten on each ingestion run. Contains only data within the lookback window.
- final -- Partitioned, historical data maintained by the refresh scripts. Preserves data outside the lookback window. Includes the
_ingested_ataudit column.
View Naming
Creative Performance Views
{platform}_creative_performance_v2These views join the creative final table with the adlevel final table and add UDF-derived metadata columns.
| View Name | Description |
|---|---|
linkedin_creative_performance_v2 | LinkedIn creative + adlevel with parsed metadata |
reddit_creative_performance_v2 | Reddit creative + adlevel with parsed metadata |
Future Views
| View Name | Description |
|---|---|
unified_performance_v2 | Cross-platform aggregation (planned) |
UDF Naming
Pattern
get_{field_name}()All UDFs use the get_ prefix followed by the metadata field name in snake_case.
| UDF Name | Extracted Field |
|---|---|
get_channel | Marketing channel |
get_product_line | Product line |
get_product | Product |
get_subproduct | Sub-product |
get_geo | Geographic region |
get_tier | Market tier |
get_language | Language |
get_audience | Audience type |
get_campaign_code | Campaign tracking code |
get_content_name | Human-readable content name |
Fully Qualified UDF References
In SQL queries, UDFs are referenced with the dataset prefix:
sql
customer_ads_suse.get_channel(CampaignName)Log Table Naming
| Table Name | Description |
|---|---|
refresh_log_v2 | Adlevel refresh script execution log |
creative_refresh_log_v2 | Creative refresh script execution log |
udf_metadata | UDF version and change tracking |
ID Column Naming by Platform
Different platforms use different naming conventions for their ID columns:
| Platform | Campaign ID | Ad Group ID | Ad/Creative ID |
|---|---|---|---|
CampaignID | AdgroupID | AdID | |
| Microsoft | CampaignID | AdGroupID | AdID |
CampaignGroupID, CampaignID | -- | CreativeID | |
CampaignID | AdgroupID | AdID | |
| 6sense | Campaign_ID | AdGroup_ID | Ad_ID |
| StackAdapt | Campaign_ID | AdGroup_ID | Ad_ID |
Note the inconsistencies in capitalization (AdgroupID vs AdGroupID) and delimiter style (camelCase vs underscore). These are inherited from the platform APIs and preserved as-is.