Skip to content

Commit

Permalink
Add support for custom conversions names in output tables
Browse files Browse the repository at this point in the history
Change-Id: I5df917f7f02b38d239ffad95bbb99b7707d35b74
  • Loading branch information
AVMarkin committed Oct 11, 2023
1 parent 8b32a0a commit 5750a1f
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
20 changes: 20 additions & 0 deletions bq_queries/ad_video_performance.sql
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,18 @@ WITH
ANY_VALUE(youtube_video_duration) AS youtube_video_duration
FROM `{bq_dataset}.ad_matching`
GROUP BY 1
),
CustomConvSplit AS (
SELECT
date,
ad_id,
{% for custom_conversion in custom_conversions %}
{% for conversion_alias, conversion_name in custom_conversion.items() %}
SUM(IF(conversion_name IN ('{{conversion_name}}'), all_conversions, 0)) AS conversions_{{conversion_alias}},
{% endfor %}
{% endfor %}
FROM `{bq_dataset}.conversion_split` AS AP
GROUP BY 1,2
)
SELECT
PARSE_DATE("%Y-%m-%d", AP.date) AS day,
Expand Down Expand Up @@ -145,6 +157,11 @@ SELECT
SUM(AP.impressions) AS impressions,
SUM(AP.all_conversions) AS all_conversions,
SUM(AP.conversions) AS conversions,
{% for custom_conversion in custom_conversions %}
{% for conversion_alias, conversion_name in custom_conversion.items() %}
SUM(COALESCE(CCS.conversions_{{conversion_alias}}, 0)) AS conversions_{{conversion_alias}},
{% endfor %}
{% endfor %}
SUM(AP.video_views) AS video_views,
SUM(AP.view_through_conversions) AS view_through_conversions,
SUM(AP.engagements) AS engagements,
Expand All @@ -154,6 +171,9 @@ INNER JOIN AdMatchingTable AS AM
ON AP.ad_id = AM.ad_id
LEFT JOIN `{bq_dataset}.video_headlines_call_to_actions` AS V
ON AP.ad_id = V.ad_id
LEFT JOIN CustomConvSplit AS CCS
ON AP.ad_id = CCS.ad_id
AND AP.date = CCS.date
LEFT JOIN MappingTable AS M
ON AP.ad_group_id = M.ad_group_id
LEFT JOIN `{bq_dataset}.asset_mapping` AS Assets
Expand Down
20 changes: 20 additions & 0 deletions bq_queries/video_performance.sql
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,18 @@
-- limitations under the License.
CREATE OR REPLACE TABLE `{output_dataset}.video_performance`
AS (
WITH CustomConvSplit AS (
SELECT
date,
ad_id,
{% for custom_conversion in custom_conversions %}
{% for conversion_alias, conversion_name in custom_conversion.items() %}
SUM(IF(conversion_name IN ('{{conversion_name}}'), all_conversions, 0)) AS conversions_{{conversion_alias}},
{% endfor %}
{% endfor %}
FROM `{bq_dataset}.conversion_split` AS AP
GROUP BY 1,2
)
SELECT
PARSE_DATE("%Y-%m-%d", AP.date) AS day,
M.account_id,
Expand All @@ -31,9 +43,17 @@ SELECT
SUM(AP.conversions) AS conversions,
SUM(AP.video_views) AS video_views,
SUM(AP.view_through_conversions) AS view_through_conversions,
{% for custom_conversion in custom_conversions %}
{% for conversion_alias, conversion_name in custom_conversion.items() %}
SUM(COALESCE(CCS.conversions_{{conversion_alias}}, 0)) AS conversions_{{conversion_alias}},
{% endfor %}
{% endfor %}
SUM(AP.engagements) AS engagements,
ROUND(SUM(AP.cost) / 1e6) AS cost
FROM `{bq_dataset}.ad_performance` AS AP
INNER JOIN `{bq_dataset}.mapping` AS M
ON AP.ad_group_id = M.ad_group_id
LEFT JOIN CustomConvSplit AS CCS
ON AP.ad_id = CCS.ad_id
AND AP.date = CCS.date
GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);

0 comments on commit 5750a1f

Please sign in to comment.