Skip to content

Commit 500410e

Browse files
jabahamondesJavier Bahamondes
andauthored
feat(ma): adding reported roas (#42313)
Co-authored-by: Javier Bahamondes <[email protected]>
1 parent cafae74 commit 500410e

17 files changed

+573
-242
lines changed

frontend/src/queries/schema.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17995,7 +17995,8 @@
1799517995
"CPC",
1799617996
"CTR",
1799717997
"Reported Conversion",
17998-
"Reported Conversion Value"
17998+
"Reported Conversion Value",
17999+
"Reported ROAS"
1799918000
],
1800018001
"type": "string"
1800118002
},

frontend/src/queries/schema/schema-general.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4402,6 +4402,7 @@ export enum MarketingAnalyticsBaseColumns {
44024402
CTR = 'CTR',
44034403
ReportedConversion = 'Reported Conversion',
44044404
ReportedConversionValue = 'Reported Conversion Value',
4405+
ReportedROAS = 'Reported ROAS',
44054406
}
44064407

44074408
export enum MarketingAnalyticsHelperForColumnNames {

posthog/schema.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2009,6 +2009,7 @@ class MarketingAnalyticsBaseColumns(StrEnum):
20092009
CTR = "CTR"
20102010
REPORTED_CONVERSION = "Reported Conversion"
20112011
REPORTED_CONVERSION_VALUE = "Reported Conversion Value"
2012+
REPORTED_ROAS = "Reported ROAS"
20122013

20132014

20142015
class MarketingAnalyticsColumnsSchemaNames(StrEnum):

products/marketing_analytics/backend/hogql_queries/__snapshots__/test_adapters.ambr

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# name: TestMarketingAnalyticsAdapters.test_bing_ads_native_query_generation
1111
'''
1212

13-
SELECT toString(bing_campaigns.name) AS match_key, toString(bing_campaigns.name) AS campaign, toString(bing_campaigns.id) AS id, toString('bing') AS source, toFloat(SUM(toFloatOrZero(bing_campaign_performance_report.impressions))) AS impressions, toFloat(SUM(toFloatOrZero(bing_campaign_performance_report.clicks))) AS clicks, SUM(toFloatOrZero(bing_campaign_performance_report.spend)) AS cost, toFloat(SUM(toFloatOrZero(bing_campaign_performance_report.conversions))) AS reported_conversion, toFloat(SUM(toFloatOrZero(bing_campaign_performance_report.revenue))) AS reported_conversion_value
13+
SELECT toString(bing_campaigns.name) AS match_key, toString(bing_campaigns.name) AS campaign, toString(bing_campaigns.id) AS id, toString('bing') AS source, toFloat(SUM(ifNull(toFloat(bing_campaign_performance_report.impressions), 0))) AS impressions, toFloat(SUM(ifNull(toFloat(bing_campaign_performance_report.clicks), 0))) AS clicks, SUM(ifNull(toFloat(bing_campaign_performance_report.spend), 0)) AS cost, toFloat(SUM(ifNull(toFloat(bing_campaign_performance_report.conversions), 0))) AS reported_conversion, toFloat(SUM(ifNull(toFloat(bing_campaign_performance_report.revenue), 0))) AS reported_conversion_value
1414
FROM bing_campaigns LEFT JOIN bing_campaign_performance_report ON equals(toString(bing_campaigns.id), toString(bing_campaign_performance_report.campaign_id))
1515
WHERE and(greaterOrEquals(toDateTime(bing_campaign_performance_report.time_period), toDateTime('2024-01-01 00:00:00')), lessOrEquals(toDateTime(bing_campaign_performance_report.time_period), toDateTime('2024-12-31 23:59:59')))
1616
GROUP BY toString(bing_campaigns.name), toString(bing_campaigns.id)
@@ -43,7 +43,7 @@
4343
# name: TestMarketingAnalyticsAdapters.test_google_ads_query_generation
4444
'''
4545

46-
SELECT toString(google_campaign.campaign_name) AS match_key, toString(google_campaign.campaign_name) AS campaign, toString(google_campaign.campaign_id) AS id, toString('google') AS source, toFloat(SUM(google_stats.metrics_impressions)) AS impressions, toFloat(SUM(google_stats.metrics_clicks)) AS clicks, toFloat(convertCurrency('USD', 'USD', SUM(toFloat(divide(google_stats.metrics_cost_micros, 1000000))))) AS cost, toFloat(SUM(google_stats.metrics_conversions)) AS reported_conversion, toFloat(SUM(google_stats.metrics_conversions_value)) AS reported_conversion_value
46+
SELECT toString(google_campaign.campaign_name) AS match_key, toString(google_campaign.campaign_name) AS campaign, toString(google_campaign.campaign_id) AS id, toString('google') AS source, toFloat(SUM(ifNull(toFloat(google_stats.metrics_impressions), 0))) AS impressions, toFloat(SUM(ifNull(toFloat(google_stats.metrics_clicks), 0))) AS clicks, toFloat(convertCurrency('USD', 'USD', SUM(toFloat(divide(google_stats.metrics_cost_micros, 1000000))))) AS cost, toFloat(SUM(ifNull(toFloat(google_stats.metrics_conversions), 0))) AS reported_conversion, toFloat(SUM(ifNull(toFloat(google_stats.metrics_conversions_value), 0))) AS reported_conversion_value
4747
FROM google_campaign LEFT JOIN google_stats ON equals(google_campaign.campaign_id, google_stats.campaign_id)
4848
WHERE and(greaterOrEquals(toDateTime(google_stats.segments_date), toDateTime('2024-01-01 00:00:00')), lessOrEquals(toDateTime(google_stats.segments_date), toDateTime('2024-12-31 23:59:59')))
4949
GROUP BY toString(google_campaign.campaign_name), toString(google_campaign.campaign_id)
@@ -52,7 +52,7 @@
5252
# name: TestMarketingAnalyticsAdapters.test_linkedin_ads_query_generation
5353
'''
5454

55-
SELECT toString(linkedin_campaigns.name) AS match_key, toString(linkedin_campaigns.name) AS campaign, toString(linkedin_campaigns.id) AS id, toString('linkedin') AS source, toFloat(SUM(linkedin_stats.impressions)) AS impressions, toFloat(SUM(linkedin_stats.clicks)) AS clicks, toFloat(SUM(toFloat(linkedin_stats.cost_in_usd))) AS cost, toFloat(SUM(linkedin_stats.external_website_conversions)) AS reported_conversion, 0 AS reported_conversion_value
55+
SELECT toString(linkedin_campaigns.name) AS match_key, toString(linkedin_campaigns.name) AS campaign, toString(linkedin_campaigns.id) AS id, toString('linkedin') AS source, toFloat(SUM(ifNull(toFloat(linkedin_stats.impressions), 0))) AS impressions, toFloat(SUM(ifNull(toFloat(linkedin_stats.clicks), 0))) AS clicks, toFloat(SUM(ifNull(toFloat(linkedin_stats.cost_in_usd), 0))) AS cost, toFloat(SUM(ifNull(toFloat(linkedin_stats.external_website_conversions), 0))) AS reported_conversion, 0 AS reported_conversion_value
5656
FROM linkedin_campaigns LEFT JOIN linkedin_stats ON equals(linkedin_campaigns.id, linkedin_stats.campaign_id)
5757
WHERE and(greaterOrEquals(toDateTime(linkedin_stats.date_start), toDateTime('2024-01-01 00:00:00')), lessOrEquals(toDateTime(linkedin_stats.date_start), toDateTime('2024-12-31 23:59:59')))
5858
GROUP BY toString(linkedin_campaigns.name), toString(linkedin_campaigns.id)
@@ -61,7 +61,7 @@
6161
# name: TestMarketingAnalyticsAdapters.test_match_key_uses_campaign_id_when_configured
6262
'''
6363

64-
SELECT toString(metaads_campaigns.id) AS match_key, toString(metaads_campaigns.name) AS campaign, toString(metaads_campaigns.id) AS id, toString('meta') AS source, toFloat(SUM(toFloat(metaads_campaign_stats.impressions))) AS impressions, toFloat(SUM(toFloat(metaads_campaign_stats.clicks))) AS clicks, SUM(toFloat(metaads_campaign_stats.spend)) AS cost, 0 AS reported_conversion, 0 AS reported_conversion_value
64+
SELECT toString(metaads_campaigns.id) AS match_key, toString(metaads_campaigns.name) AS campaign, toString(metaads_campaigns.id) AS id, toString('meta') AS source, toFloat(SUM(ifNull(toFloat(metaads_campaign_stats.impressions), 0))) AS impressions, toFloat(SUM(ifNull(toFloat(metaads_campaign_stats.clicks), 0))) AS clicks, SUM(ifNull(toFloat(metaads_campaign_stats.spend), 0)) AS cost, 0 AS reported_conversion, 0 AS reported_conversion_value
6565
FROM metaads_campaigns LEFT JOIN metaads_campaign_stats ON equals(metaads_campaigns.id, metaads_campaign_stats.campaign_id)
6666
WHERE and(greaterOrEquals(toDateTime(metaads_campaign_stats.date_stop), toDateTime('2024-01-01 00:00:00')), lessOrEquals(toDateTime(metaads_campaign_stats.date_stop), toDateTime('2024-12-31 23:59:59')))
6767
GROUP BY toString(metaads_campaigns.name), toString(metaads_campaigns.id)
@@ -70,7 +70,7 @@
7070
# name: TestMarketingAnalyticsAdapters.test_match_key_uses_campaign_name_by_default
7171
'''
7272

73-
SELECT toString(metaads_campaigns.name) AS match_key, toString(metaads_campaigns.name) AS campaign, toString(metaads_campaigns.id) AS id, toString('meta') AS source, toFloat(SUM(toFloat(metaads_campaign_stats.impressions))) AS impressions, toFloat(SUM(toFloat(metaads_campaign_stats.clicks))) AS clicks, SUM(toFloat(metaads_campaign_stats.spend)) AS cost, 0 AS reported_conversion, 0 AS reported_conversion_value
73+
SELECT toString(metaads_campaigns.name) AS match_key, toString(metaads_campaigns.name) AS campaign, toString(metaads_campaigns.id) AS id, toString('meta') AS source, toFloat(SUM(ifNull(toFloat(metaads_campaign_stats.impressions), 0))) AS impressions, toFloat(SUM(ifNull(toFloat(metaads_campaign_stats.clicks), 0))) AS clicks, SUM(ifNull(toFloat(metaads_campaign_stats.spend), 0)) AS cost, 0 AS reported_conversion, 0 AS reported_conversion_value
7474
FROM metaads_campaigns LEFT JOIN metaads_campaign_stats ON equals(metaads_campaigns.id, metaads_campaign_stats.campaign_id)
7575
WHERE and(greaterOrEquals(toDateTime(metaads_campaign_stats.date_stop), toDateTime('2024-01-01 00:00:00')), lessOrEquals(toDateTime(metaads_campaign_stats.date_stop), toDateTime('2024-12-31 23:59:59')))
7676
GROUP BY toString(metaads_campaigns.name), toString(metaads_campaigns.id)
@@ -79,7 +79,7 @@
7979
# name: TestMarketingAnalyticsAdapters.test_meta_ads_query_generation
8080
'''
8181

82-
SELECT toString(meta_campaigns.name) AS match_key, toString(meta_campaigns.name) AS campaign, toString(meta_campaigns.id) AS id, toString('meta') AS source, toFloat(SUM(toFloat(meta_campaign_stats.impressions))) AS impressions, toFloat(SUM(toFloat(meta_campaign_stats.clicks))) AS clicks, SUM(toFloat(meta_campaign_stats.spend)) AS cost, 0 AS reported_conversion, 0 AS reported_conversion_value
82+
SELECT toString(meta_campaigns.name) AS match_key, toString(meta_campaigns.name) AS campaign, toString(meta_campaigns.id) AS id, toString('meta') AS source, toFloat(SUM(ifNull(toFloat(meta_campaign_stats.impressions), 0))) AS impressions, toFloat(SUM(ifNull(toFloat(meta_campaign_stats.clicks), 0))) AS clicks, SUM(ifNull(toFloat(meta_campaign_stats.spend), 0)) AS cost, 0 AS reported_conversion, 0 AS reported_conversion_value
8383
FROM meta_campaigns LEFT JOIN meta_campaign_stats ON equals(meta_campaigns.id, meta_campaign_stats.campaign_id)
8484
WHERE and(greaterOrEquals(toDateTime(meta_campaign_stats.date_stop), toDateTime('2024-01-01 00:00:00')), lessOrEquals(toDateTime(meta_campaign_stats.date_stop), toDateTime('2024-12-31 23:59:59')))
8585
GROUP BY toString(meta_campaigns.name), toString(meta_campaigns.id)
@@ -88,7 +88,7 @@
8888
# name: TestMarketingAnalyticsAdapters.test_reddit_ads_query_generation
8989
'''
9090

91-
SELECT toString(reddit_campaign.name) AS match_key, toString(reddit_campaign.name) AS campaign, toString(reddit_campaign.id) AS id, toString('reddit') AS source, toFloat(SUM(reddit_stats.impressions)) AS impressions, toFloat(SUM(reddit_stats.clicks)) AS clicks, SUM(toFloat(divide(reddit_stats.spend, 1000000))) AS cost, toFloat(SUM(reddit_stats.key_conversion_total_count)) AS reported_conversion, toFloat(plus(SUM(reddit_stats.conversion_purchase_total_value), SUM(reddit_stats.conversion_signup_total_value))) AS reported_conversion_value
91+
SELECT toString(reddit_campaign.name) AS match_key, toString(reddit_campaign.name) AS campaign, toString(reddit_campaign.id) AS id, toString('reddit') AS source, toFloat(SUM(ifNull(toFloat(reddit_stats.impressions), 0))) AS impressions, toFloat(SUM(ifNull(toFloat(reddit_stats.clicks), 0))) AS clicks, SUM(toFloat(divide(reddit_stats.spend, 1000000))) AS cost, toFloat(SUM(ifNull(toFloat(reddit_stats.key_conversion_total_count), 0))) AS reported_conversion, toFloat(plus(SUM(ifNull(toFloat(reddit_stats.conversion_purchase_total_value), 0)), SUM(ifNull(toFloat(reddit_stats.conversion_signup_total_value), 0)))) AS reported_conversion_value
9292
FROM reddit_campaign LEFT JOIN reddit_stats ON equals(reddit_campaign.id, reddit_stats.campaign_id)
9393
WHERE and(greaterOrEquals(toDateTime(reddit_stats.date), toDateTime('2024-01-01 00:00:00')), lessOrEquals(toDateTime(reddit_stats.date), toDateTime('2024-12-31 23:59:59')))
9494
GROUP BY toString(reddit_campaign.name), toString(reddit_campaign.id)
@@ -97,7 +97,7 @@
9797
# name: TestMarketingAnalyticsAdapters.test_tiktok_ads_native_query_generation
9898
'''
9999

100-
SELECT toString(tiktok_campaigns.campaign_name) AS match_key, toString(tiktok_campaigns.campaign_name) AS campaign, toString(tiktok_campaigns.campaign_id) AS id, toString('tiktok') AS source, toFloat(SUM(toFloatOrZero(tiktok_campaign_report.impressions))) AS impressions, toFloat(SUM(toFloatOrZero(tiktok_campaign_report.clicks))) AS clicks, SUM(toFloatOrZero(tiktok_campaign_report.spend)) AS cost, toFloat(SUM(toFloatOrZero(tiktok_campaign_report.conversion))) AS reported_conversion, 0 AS reported_conversion_value
100+
SELECT toString(tiktok_campaigns.campaign_name) AS match_key, toString(tiktok_campaigns.campaign_name) AS campaign, toString(tiktok_campaigns.campaign_id) AS id, toString('tiktok') AS source, toFloat(SUM(ifNull(toFloat(tiktok_campaign_report.impressions), 0))) AS impressions, toFloat(SUM(ifNull(toFloat(tiktok_campaign_report.clicks), 0))) AS clicks, SUM(ifNull(toFloat(tiktok_campaign_report.spend), 0)) AS cost, toFloat(SUM(ifNull(toFloat(tiktok_campaign_report.conversion), 0))) AS reported_conversion, 0 AS reported_conversion_value
101101
FROM tiktok_campaigns LEFT JOIN tiktok_campaign_report ON equals(tiktok_campaigns.campaign_id, tiktok_campaign_report.campaign_id)
102102
WHERE and(greaterOrEquals(toDateTime(tiktok_campaign_report.stat_time_day), toDateTime('2024-01-01 00:00:00')), lessOrEquals(toDateTime(tiktok_campaign_report.stat_time_day), toDateTime('2024-12-31 23:59:59')))
103103
GROUP BY toString(tiktok_campaigns.campaign_name), toString(tiktok_campaigns.campaign_id)

0 commit comments

Comments
 (0)