Skip to content

reddit_creative_performance_v2

This view joins the Reddit adlevel final table with the Reddit creative final table, producing a single denormalized output with performance metrics, creative metadata, URLs, and UDF-enriched campaign fields.

View Details

PropertyValue
Full pathpaidteam-data-warehouse.customer_ads_suse.reddit_creative_performance_v2
Source (adlevel)suse_reddit_adlevel_final_v2
Source (creative)suse_reddit_creative_final_v2
Join typeLEFT JOIN
Join keyCampaignID + AdgroupID + AdID (composite)

Join Logic

sql
FROM `paidteam-data-warehouse.customer_ads_suse.suse_reddit_adlevel_final_v2` a
LEFT JOIN `paidteam-data-warehouse.customer_ads_suse.suse_reddit_creative_final_v2` c
  ON a.CampaignID = c.CampaignID
  AND a.AdgroupID = c.AdGroupID
  AND a.AdID = c.AdID

Reddit does not use globally unique ad IDs, so a composite key of CampaignID + AdgroupID + AdID is required to correctly match creative metadata to performance rows. The LEFT JOIN ensures all adlevel rows are preserved even if no matching creative exists.

Composite Key

Unlike LinkedIn (which uses a single CreativeID), Reddit requires a three-column composite key for correct creative-to-performance matching.

Column Groups

Date and IDs

ColumnTypeSourceDescription
DateDATEadlevelThe reporting date
CampaignIDSTRINGadlevelReddit campaign identifier
AdgroupIDSTRINGadlevelReddit ad group identifier
AdIDSTRINGadlevelReddit ad identifier

Names

ColumnTypeSourceDescription
CampaignnameSTRINGadlevelCampaign name
AdgroupnameSTRINGadlevelAd group name
AdnameSTRINGadlevelAd name

Campaign Metadata

ColumnTypeSourceDescription
CampaignObjectiveSTRINGadlevelCampaign objective (e.g., CONVERSIONS, TRAFFIC)
BidStrategySTRINGadlevelBidding strategy

Ad Status

ColumnTypeSourceDescription
AdStatusSTRINGcreativeCurrent ad delivery status
AdEffectiveStatusSTRINGcreativeEffective status considering campaign/adgroup status

URLs

ColumnTypeSourceDescription
ClickURLSTRINGcreativeClick-through destination URL
PostURLSTRINGcreativeURL to the Reddit post
ThumbnailURLSTRINGcreativeURL to the ad thumbnail image
MediaURLSTRINGcreativeURL to the ad media asset (image or video)

Core Metrics

ColumnTypeDescription
ImpressionsINTEGERNumber of times the ad was displayed
ClicksINTEGERNumber of clicks on the ad
CostFLOAT64Total spend in account currency (mapped from Reddit's Spend field)

Cost Mapping

Reddit's API reports spending as Spend. This view maps it to Cost for cross-platform consistency.

Rate Metrics

ColumnTypeDescription
CTRFLOAT64Click-through rate
CPCFLOAT64Average cost per click
CPMFLOAT64Cost per thousand impressions (mapped from Reddit's ECPM field)

CPM Mapping

Reddit's API reports CPM as ECPM (effective CPM). This view maps it to CPM for cross-platform consistency.

Reach

ColumnTypeDescription
ReachINTEGERUnique users who saw the ad
FrequencyFLOAT64Average times each user saw the ad

Conversions (Reddit-Specific)

Reddit provides its own conversion tracking columns that differ from other platforms.

ColumnTypeDescription
ConversionsINTEGERTotal attributed conversions
ViewThroughConversionsINTEGERConversions attributed to ad views (no click)
ClickThroughConversionsINTEGERConversions attributed to ad clicks
PurchaseRoasFLOAT64Return on ad spend for purchase conversions

Video Metrics

ColumnTypeDescription
VideoViewsINTEGERNumber of video views
VideoViewableImpressionsINTEGERViewable video impressions
VideoFullyViewedRateFLOAT64Percentage of views that completed the full video
Video25PctViewsINTEGERViews past 25% of video
Video50PctViewsINTEGERViews past 50% of video
Video75PctViewsINTEGERViews past 75% of video
Video100PctViewsINTEGERViews to 100% completion

Calculated Fields

ColumnTypeDescription
TotalConversionsINTEGERSum of all conversion types
CPAFLOAT64Cost / TotalConversions (NULL-safe with SAFE_DIVIDE)

UDF-Enriched Fields

These fields are computed at query time by the dataset's UDFs. For Reddit, the AdGroupName (Adgroupname) is used as the source for naming convention parsing, as Reddit's ad group names carry the structured metadata.

ColumnUDFInput SourceDescription
Channelget_channel()CampaignNameAdvertising channel
CampaignCodeget_campaign_code()CampaignNameNumeric campaign tracking code
ProductLineget_product_line()CampaignNameProduct line
Productget_product()CampaignNameSpecific product name
SubProductget_subproduct()CampaignNameSub-product or variant
GEOget_geo()CampaignNameGeographic targeting region
Tierget_tier()CampaignNameTier classification
Languageget_language()CampaignNameLanguage targeting
Audienceget_audience()CampaignNameAudience segment
ContentNameget_content_name()AdGroupNameHuman-readable content name derived from the ad group name

ContentName Source

Unlike LinkedIn where ContentName is derived from the creative name, Reddit uses the ad group name (Adgroupname) as the input to get_content_name(), because Reddit's naming convention places the content descriptor in the ad group level.

Audit Timestamps

ColumnTypeSourceDescription
_ingested_atTIMESTAMPadlevelWhen the adlevel row was written to the final table
creative_ingested_atTIMESTAMPcreativeWhen the creative record was last merged

Example Queries

Top Ads by Spend (Last 30 Days)

sql
SELECT
  Adname,
  Campaignname,
  Adgroupname,
  MediaURL,
  SUM(Cost) AS TotalSpend,
  SUM(Impressions) AS TotalImpressions,
  SUM(Clicks) AS TotalClicks,
  SAFE_DIVIDE(SUM(Clicks), SUM(Impressions)) AS AvgCTR,
  SUM(TotalConversions) AS Conversions
FROM `paidteam-data-warehouse.customer_ads_suse.reddit_creative_performance_v2`
WHERE Date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY Adname, Campaignname, Adgroupname, MediaURL
ORDER BY TotalSpend DESC
LIMIT 20;

Video Completion Funnel

sql
SELECT
  Adname,
  SUM(Impressions) AS Impressions,
  SUM(VideoViews) AS Views,
  SUM(Video25PctViews) AS Q1_Views,
  SUM(Video50PctViews) AS Q2_Views,
  SUM(Video75PctViews) AS Q3_Views,
  SUM(Video100PctViews) AS Completions,
  SAFE_DIVIDE(SUM(Video100PctViews), SUM(VideoViews)) AS CompletionRate
FROM `paidteam-data-warehouse.customer_ads_suse.reddit_creative_performance_v2`
WHERE Date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
  AND VideoViews > 0
GROUP BY Adname
ORDER BY Views DESC;

Conversion Performance by Content

sql
SELECT
  ContentName,
  ProductLine,
  COUNT(DISTINCT AdID) AS UniqueAds,
  SUM(Cost) AS TotalSpend,
  SUM(Conversions) AS TotalConversions,
  SUM(ClickThroughConversions) AS ClickConversions,
  SUM(ViewThroughConversions) AS ViewConversions,
  SAFE_DIVIDE(SUM(Cost), SUM(Conversions)) AS CPA
FROM `paidteam-data-warehouse.customer_ads_suse.reddit_creative_performance_v2`
WHERE Date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY ContentName, ProductLine
ORDER BY TotalSpend DESC;

Dependencies

  • Tables: suse_reddit_adlevel_final_v2, suse_reddit_creative_final_v2
  • UDFs: All 10 UDFs (get_channel, get_campaign_code, get_product_line, get_product, get_subproduct, get_geo, get_tier, get_language, get_audience, get_content_name)
  • Consumers: Looker Studio Reddit Creative Dashboard

SUSE Paid Advertising Data Warehouse V2