Skip to content

Instantly share code, notes, and snippets.

View gilbertococchi's full-sized avatar

Gilberto Cocchi gilbertococchi

View GitHub Profile
@gilbertococchi
gilbertococchi / gist:a7237db651259a00e5b1f971e835feca
Last active May 21, 2024 14:48
BigQuery GA4 WebVitals.js v4 INP and LoAF data extraction
WITH web_vitals_events AS (
SELECT
event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
SELECT *, IF (ROW_NUMBER() OVER (
PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
) = 1, true, false) AS is_last_received_value
FROM `ilaria-food-and-home.analytics_317802288.events_20240519`
WHERE event_name in ('INP')
) WHERE is_last_received_value
@gilbertococchi
gilbertococchi / INPtoLoAF.js
Last active August 22, 2023 16:58
INP to LoAF Attribution
(function() {
if (PerformanceObserver.supportedEntryTypes.includes('long-animation-frame')) {
window.longestINPtoLoAFScript = null;
function process(eventEntry) {
let matchingLoafs = [];
for (const event_entry of eventEntry.entries) {
if (event_entry.entryType == "first-input")
continue;
@gilbertococchi
gilbertococchi / gist:fdb7d29ca8ad813fb28ba3902296838f
Created January 25, 2023 12:47
Wix Origins passing INP using 3P Categories
CREATE TEMP FUNCTION IS_GOOD(good FLOAT64, needs_improvement FLOAT64, poor FLOAT64) RETURNS BOOL AS (
good / (good + needs_improvement + poor) >= 0.75
);
WITH WIX_ORIGINS AS (
SELECT
origin,
fast_inp,
good_inp
FROM (
# Warning: This Query will process 57GB approx, consider BigQuery API costs.
WITH dates AS
(SELECT
yyyymm
FROM
`chrome-ux-report.materialized.device_summary`
GROUP BY yyyymm
ORDER BY yyyymm DESC
LIMIT 13)