Skip to content

suse_linkedin_adlevel_final_v2

Full reference: paidteam-data-warehouse.customer_ads_suse.suse_linkedin_adlevel_final_v2Type: Final | Rows: 243,168 | Size: 140.1 MB

LinkedIn Ads ad-level final data (V2). Contains the complete historical record of LinkedIn Ads performance, refreshed daily from staging via a rolling 60-day DELETE+INSERT process.

Schema

ColumnTypeNullableDescription
DateDATENoDate of ad performance
CampaignGroupIDSTRINGYesLinkedIn campaign group ID (top-level grouping)
CampaignIDSTRINGYesLinkedIn campaign ID (equivalent to ad group)
CreativeIDSTRINGYesLinkedIn creative ID (equivalent to ad ID)
CampaignGroupNameSTRINGYesCampaign group name
CampaignNameSTRINGYesCampaign name
CreativeNameSTRINGYesCreative name
CreativeTypeSTRINGYesCreative type (SingleImage, Video, Carousel, etc.)
CreativeDestinationURLSTRINGYesClick destination URL
ImpressionsINTEGERYesNumber of impressions
ClicksINTEGERYesNumber of clicks
CTRFLOATYesClick-through rate
CPCFLOATYesCost per click
CPMFLOATYesCost per thousand impressions
CostFLOATYesTotal cost
ReachINTEGERYesUnique members reached
FrequencyFLOATYesAverage frequency per member
LandingPageClicksINTEGERYesClicks to landing page
CompanyPageClicksINTEGERYesClicks to company page
OneClickLeadsINTEGERYesLead gen form submissions
OneClickLeadFormOpensINTEGERYesLead gen form opens
LeadFormCompletionRateFLOATYesLead form completion rate
VideoViewsINTEGERYesNumber of video views
VideoCompletionsINTEGERYesNumber of video completions
DownloadClicksINTEGERYesDocument download clicks
DocumentCompletionsINTEGERYesDocument ad completions
ExternalWebsiteConversionsINTEGERYesTotal external website conversions
ExternalWebsitePostClickConversionsINTEGERYesPost-click website conversions
ExternalWebsitePostViewConversionsINTEGERYesPost-view website conversions
ConversionRateFLOATYesConversion rate
_ingested_atTIMESTAMPYesTimestamp when the row was inserted by the refresh script

Partitioning & Clustering

  • Partitioned by: Date (DAY)
  • Partitions: 450
  • Clustered by: CampaignName, CampaignGroupName

Refresh Logic

The scheduled refresh script performs the following for LinkedIn:

  1. Read all rows from suse_linkedin_adlevel_staging_v2
  2. Identify the MIN(Date) and MAX(Date) range in staging
  3. DELETE rows in this final table matching that date range AND the same CampaignGroupID, CampaignID, CreativeID combinations
  4. INSERT all staging rows with _ingested_at = CURRENT_TIMESTAMP()
  5. Log the operation to refresh_log_v2

Primary keys used for refresh: Date, CampaignGroupID, CampaignID, CreativeID

Sample Query

sql
SELECT
  Date,
  CampaignGroupName,
  CampaignName,
  CreativeType,
  SUM(Impressions) AS total_impressions,
  SUM(Clicks) AS total_clicks,
  SUM(Cost) AS total_cost,
  SUM(OneClickLeads) AS total_leads
FROM `paidteam-data-warehouse.customer_ads_suse.suse_linkedin_adlevel_final_v2`
WHERE Date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY Date, CampaignGroupName, CampaignName, CreativeType
ORDER BY Date DESC
LIMIT 100;

Notes

  • LinkedIn uses CampaignGroupID + CampaignID + CreativeID as its composite key. This differs from Google/Microsoft which use CampaignID + AdGroupID + AdID.
  • With 243,168 rows and 450 partitions, this is the largest table by row count in the V2 warehouse.
  • Clustering is on CampaignName and CampaignGroupName to support dashboard filtering.
  • The CreativeID on LinkedIn is globally unique, but the refresh script uses the full composite key for correctness.

SUSE Paid Advertising Data Warehouse V2