GA4 BigQuery Planlanmış Sorgularını Optimize Etme
Google, Ekim 2020'de GA4'ü kullanıma sunduğundan beri, herkes gerçek ödül olan verilerden iş değeri elde etmeye odaklanmak yerine UA ile GA4'ü tartışıyor ! Bu aşamayı aştığınızı ve artık GA4'e geçişi tamamladığınızı, mülklerinizi BigQuery'ye bağladığınızı ve etkileyici GA4 verilerinizi toplamaya başladığınızı varsayarsak. UA raporlarınızı BigQuery'de GA4 kullanarak çoğaltmayı veya yeni GA4 otomatik raporları oluşturmayı düşünüyor olabilirsiniz.
Tamamen yeni olay tabanlı veri şemasına ek olarak Google, günlük dışa aktarmayı tablo tarihinden sonraki 72 saate kadar günceller . Neden soruyorsun? Ölçüm Protokolünden gelebilecek başarısız veya gecikmiş olaylara uyum sağlamak için.
Bu, önemli bir soruyu gündeme getiriyor: Verileri tekrarlamadan veya en son güncellemeleri kaçırmadan günlük bir sorgu planlamanın en etkili yolu nedir? Görünen dört seçenek vardır:
- Birincisi, her gün tüm tarih aralığını sorgulamak ve sonuçların üzerine yazmak… ama bu yaklaşım çok PAHALI!
- İkincisi, en son üç günün her biri için ayrı bir sorgu planlamaktır... ama o zaman, her değişiklik yaptığınızda üç sorguyu güncellemeniz gerekir.
- Üçüncü seçenek, son üç günü sorgulamak ve ardından yinelemeleri kaldırmaktır... ama bu en temiz çözüm değildir.
- Dördüncü seçenek, veriler güncellendiğinde veya Cloud Logging yoluyla geldiğinde planlanmış bir sorguyu başlatan bir Bulut İşlevi kurmaktır. Elbette sağlam bir çözüm, ancak ciddi Python/Node.js, vb. gerektiren bir çözüm. bilgi birikimi ve böyle bir boru hattını kurmak zaman alır.
#DECLARE VARIABLES AND TIMEFRAME
DECLARE
set_date date;
DECLARE
final_date DEFAULT DATE_ADD(CURRENT_DATE(),INTERVAL -1 day);
DECLARE
initial_date date DEFAULT DATE_ADD(CURRENT_DATE(),INTERVAL -3 day);
DECLARE
formatted_date STRING;
SET set_date = initial_date;
# START FOR LOOP
LOOP
SET
set_date = DATE_ADD(set_date,INTERVAL 1 day);
SET
formatted_date = FORMAT_DATE("%Y%m%d", set_date);
IF
set_date > final_date THEN
LEAVE;
END IF;
EXECUTE IMMEDIATE
#FORMAT QUERY
FORMAT("""
CREATE OR REPLACE TABLE
`{PROJECT_ID}.{DATASET_ID}.ga4_revenue_%s` AS
############ REVENUE FOR EACH USER ###############
(
SELECT
user_pseudo_id,
SUM(ecommerce.purchase_revenue) as revenue
FROM
`{PROJECT_ID}.{DATASET_ID}.events_*`
WHERE
(_TABLE_SUFFIX = '%s') AND user_pseudo_id IS NOT NULL
GROUP BY
1
ORDER BY
user_pseudo_id)
"""
, formatted_date, formatted_date);
END LOOP;
Bu sorgu, tüm tarih aralığını sorgulamanın günlük maliyetini inanılmaz bir şekilde ~%200+ oranında dilimledi (maliyetler ve yüzde, elbette geçmiş veri hacminize göre değişir). Dolayısıyla, verilerinizden yalnızca ciddi bir değer elde etmekle kalmıyor, aynı zamanda ciddi bir kazanç elde ediyor ve veri raporlamanızı yerinde tutuyorsunuz.
BigQuery'deki yeni GA4 evreninde maceraya atılırken öğrendiklerimi bir dizi blogda paylaşacağım.
BigQuery'de döngü oluşturmanın keyfini çıkarın ve verilerinizden yalnızca değer elde etmekle kalmayın, bunu şık bir şekilde yapın!

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































