Skip to content

Instantly share code, notes, and snippets.

@konosp
Created November 8, 2019 09:54
Show Gist options
  • Select an option

  • Save konosp/03f1d4336ac7ab6345f607e8580ca9c3 to your computer and use it in GitHub Desktop.

Select an option

Save konosp/03f1d4336ac7ab6345f607e8580ca9c3 to your computer and use it in GitHub Desktop.
SELECT
-- Product SKU (dimension)
productSKU AS Product_SKU,
-- Unique Purchases (metric)
COUNT(CASE
WHEN hits.eCommerceAction.action_type = '6' THEN hits.transaction.transactionId
ELSE
NULL
END
) AS Unique_Purchases,
-- Cart-to-Detail Rate (metric)
CASE
WHEN COUNT(CASE
WHEN hits.eCommerceAction.action_type = '2' THEN fullVisitorId
ELSE
NULL
END
) = 0 THEN 0
ELSE
COUNT(CASE
WHEN hits.eCommerceAction.action_type = '3' THEN fullVisitorId
ELSE
NULL
END
) / COUNT(CASE
WHEN hits.eCommerceAction.action_type = '2' THEN fullVisitorId
ELSE
NULL
END
)
END
AS Cart_To_Detail_Rate,
-- Buy-to-Detail Rate (metric)
CASE
WHEN COUNT(CASE
WHEN hits.eCommerceAction.action_type = '2' THEN fullVisitorId
ELSE
NULL
END
) = 0 THEN 0
ELSE
COUNT(CASE
WHEN hits.eCommerceAction.action_type = '6' THEN hits.transaction.transactionId
ELSE
NULL
END
) / COUNT(CASE
WHEN hits.eCommerceAction.action_type = '2' THEN fullVisitorId
ELSE
NULL
END
)
END
AS Buy_To_Detail_Rate,
-- Product Detail Views (metric)
COUNT(CASE
WHEN hits.eCommerceAction.action_type = '2' THEN fullVisitorId
ELSE
NULL
END
) AS Product_Detail_Views,
-- Product Adds To Cart (metric)
COUNT(CASE
WHEN hits.eCommerceAction.action_type = '3' THEN fullVisitorId
ELSE
NULL
END
) AS Product_Adds_To_Cart,
-- Product Removes From Cart (metric)
COUNT(CASE
WHEN hits.eCommerceAction.action_type = '4' THEN fullVisitorId
ELSE
NULL
END
) AS Product_Removes_From_Cart,
-- Product Checkouts (metric)
COUNT(CASE
WHEN hits.eCommerceAction.action_type = '5' THEN fullVisitorId
ELSE
NULL
END
) AS Product_Checkouts,
-- Product Refunds (metric)
COUNT(CASE
WHEN hits.eCommerceAction.action_type = '7' THEN fullVisitorId
ELSE
NULL
END
) AS Product_Refunds
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_*`,
UNNEST(hits) AS hits,
UNNEST(product) AS product
WHERE
_table_suffix BETWEEN '20160801'
AND FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
AND totals.visits = 1
AND (isImpression IS NULL
OR isImpression = FALSE)
GROUP BY
1
ORDER BY
2 DESC
LIMIT
10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment