Bu özellik yalnızca Google Marketing Platform kapsamında sunulan Analytics 360 ürününde kullanılabilir. Google Marketing Platform hakkında daha fazla bilgi |
Bu makalede, Analytics verilerini BigQuery'ye aktarma sorgularını nasıl oluşturacağınıza dair örnekler verilmektedir. Ayrıca, verilen sorgu örneklerinden bazılarıyla alıştırma yapabilmeniz için örnek bir veri kümesi kullanımınıza sunulmuştur.
Bu makalede ele alınan konular:- Sorgu optimizasyonu
- İpuçları ve en iyi uygulamalar
- Temel sorgu örnekleri
- Gelişmiş sorgu örnekleri
- A ürününü satın alan müşteriler tarafından satın alınan ürünler (Klasik E-ticaret)
- A ürününü satın alan müşteriler tarafından satın alınan ürünler (Geliştirilmiş E-ticaret)
- Satın almadan önceki ortalama kullanıcı etkileşimi sayısı
- Ürün başına satılan stok yüzdesi
- Her bir ürünün kârlılığı
- Her bir ürünün gerçek kârlılığı
Sorgu optimizasyonu
Yaptığınız her sorgu işlemi, aylık veri işleme ödeneğinize eklenir. Fazla alan seçerseniz işlenmesi gereken veri miktarını arttırmış ve dolayısıyla aylık ödeneğinizin ihtiyacınızdan daha fazla kısmını kullanmış olursunuz. Optimize edilmiş sorgular, aylık veri işleme ödeneğinizi verimli kullanmanıza yardımcı olur.
Fiyatlandırma hakkında daha fazla bilgi edinin.
Yalnızca ihtiyacınız olanı seçin
Bir sorguyu formüle ederken SELECT ifadesi içindeki alakalı alanları seçin. Fazla alan seçmeyerek sorgunun işlenmesi için gereken veri miktarını ve süreyi azaltmış olursunuz.
Örnek: Joker karakter operatörü kullanmaktan kaçınma
Kötü biçim: joker karakter operatörü kullanma |
---|
SELECT * |
İyi biçim: Gereksiz işlemlerden kaçınmak için alan adları kullanma |
---|
SELECT field1, field2 |
Önbelleğe alma izni sağlayın
Mümkünse, fonksiyonları alan olarak kullanmaktan kaçının. (NOW()
veya TODAY()
) gibi fonksiyonlar değişken sonuçlar getirir ve bu, sorguların önbelleğe alınmasını ve dolayısıyla daha hızlı getirilmesini engeller. Bunun yerine, belirli saatler ve tarihler kullanın.
Sık kullanılan alt sorgular için orta seviye tablolar kullanın
Belirli bir sorguyu sürekli olarak alt sorgu olarak kullandığınızı fark ederseniz, bu sorguyu sorgu sonuçlarının üzerindeki Tablo Olarak Kaydet öğesini tıklayarak orta seviye bir tablo olarak kaydedebilirsiniz. Daha sonra bu tabloyu sorgunuzdaki FROM
bölümünde belirterek hem işlenmesi gereken veri miktarını hem de işlem süresini azaltabilirsiniz.
orta seviye tablo kullanma |
---|
SELECT field1, field2 |
Sorguda hata ayıklama
BigQuery, kodunuzu oluşturduğunuz sırada kodda hata ayıklama işlemi gerçekleştirir. Oluşturma penceresinde, hata ayıklama işlemi sorgunun hemen altında belirtilir. Hata ayıklama ayrıca dryRun işaretli API aracılığıyla da kullanılabilir.
Geçerli sorgularda, sorgu tarafından işlenen veri miktarını görmek için tıklayabileceğiniz yeşil bir gösterge bulunur. Bu özellik, sorguyu çalıştırmadan önce verilerinizi optimize etme olanağı sunar. Böylece gereksiz veri işlemlerinden kaçınabilirsiniz.
Geçersiz sorgularda, hataya ilişkin bilgileri görmek ve hatanın meydana geldiği satırı ve sütunu bulmak için tıklayabileceğiniz kırmızı bir gösterge bulunur. Aşağıdaki örnekte GROUP BY ifadesi boştur ve hatanın yeri gösterilmiştir.
İpuçları ve en iyi uygulamalar
Örnek veri kümesini kullanma
Aşağıdaki örneklerde Google Analytics örnek veri kümesi kullanılır.
Sorguları kendi verilerinizde kullanmak için proje ve veri kümesi adlarını kendi proje ve veri kümelerinizin adlarıyla değiştirmeniz yeterlidir.
Standart SQL veya Eski SQL'yi kullanma
BigQuery iki SQL dilini destekler:
İki dil arasındaki farklar, Migrating to Standard SQL (Standart SQL'e geçiş) başlıklı makalede açıklanmıştır.
BigQuery'de depolanan verileri sorgulamak için tercih edilen SQL dili artık standart SQL'dir.
BigQuery kullanıcı arayüzü, komut satırı arayüzü, API'si ya da kullandığınız farklı bir arayüzde standart SQL'i etkinleştirme hakkında daha fazla bilgi edinmek için Enabling Standard SQL (Standart SQL'i etkinleştirme) başlıklı makaleyi inceleyebilirsiniz.
Etkinleştirme işlemine başlamanın en kolay yöntemi, "standardSQL" yorumunu standart SQL sorgularınızın üst kısmına, aşağıdaki örneklerde gösterildiği gibi eklemektir.
Eski SQL ile, Google Analytics 360 verileri her gün yeni bir tabloya aktarılır. Birden çok tabloyu aynı anda sorgulamak için aşağıdaki örneklerde olduğu gibi tablo adlarını virgülle ayırabilir, TABLE_DATE_RANGE
tablo joker karakter işlevini veya virgülle ayrılmış birden çok TABLE_DATE_RANGE
işlevini kullanabilirsiniz.
Birden çok tabloyu sorgulama
Aşağıda, aynı veriler için Standart SQL ve Eski SQL sorgularına örnekler verilmiştir.
3 gün
Standart SQL
UNION ALL kullanarak 3 gün |
---|
#standardSQL |
Eski SQL
Virgülle ayrılmış tablo adları kullanılarak 3 gün |
---|
SELECT |
Son 1.095 gün
Standart SQL
_TABLE_SUFFIX kullanarak son 1.095 gün |
---|
#standardSQL |
Eski SQL
TABLE_DATE_RANGE kullanarak son 1.095 gün |
---|
SELECT |
Son 36 ay
Standart SQL
_TABLE_SUFFIX kullanarak son 36 ay |
---|
#standardSQL |
Eski SQL
TABLE_DATE_RANGE kullanarak son 36 ay |
---|
SELECT |
Son 3 yıl
Standart SQL
_TABLE_SUFFIX kullanarak son 3 yıl |
---|
#standardSQL |
Eski SQL
TABLE_DATE_RANGE kullanarak son 3 yıl |
---|
SELECT |
Belirli bir tarih aralığı
Standart SQL
_TABLE_SUFFIX kullanarak belirli bir tarih aralığı |
---|
#standardSQL |
Eski SQL
TABLE_DATE_RANGE kullanarak belirli bir tarih aralığı |
---|
SELECT |
Son 3 yılın artı bugünün verileri (gün içi)
Standart SQL
UNION ALL ve _TABLE_SUFFIX kullanarak Son 3 yılın artı bugünün verileri (gün içi) |
---|
Not: Bu örnek sorgu, şu anda gün içi tablo bulunmadığı için Google Analytics herkese açık veri kümesiyle kullanılamaz. |
#standardSQL |
Eski SQL
Birden çok TABLE_DATE_RANGE kullanarak Son 3 yılın artı bugünün verileri (gün içi) |
---|
Not: Bu örnek sorgu, şu anda gün içi tablo bulunmadığı için Google Analytics herkese açık veri kümesiyle kullanılamaz. |
SELECT |
Temel sorgu örnekleri
Bu bölümde, örnek Analytics verilerindeki metrik ve boyutlar kullanılarak nasıl temel sorgular oluşturulacağı açıklanmaktadır.
[Boyut] başına toplam [metrik]
Aşağıda, Temmuz 2017'de cihaz tarayıcısı başına oluşturulan toplam işlemlerin sayısı kaçtır? sorusu için örnek komut dosyaları verilmiştir:
Standart SQL
Temmuz 2017'de cihaz tarayıcısı başına toplam işlem sayısı |
---|
#standardSQL |
Eski SQL
Temmuz 2017'de cihaz tarayıcısı başına toplam işlem sayısı |
---|
SELECT |
[ Boyut ] başına ortalama hemen çıkma oranı
Gerçek hemen çıkma oranı, sayfanın bir defa görüntülendiği ziyaretlerin yüzdesi olarak tanımlanır. Aşağıda, Trafik kaynağı başına gerçek hemen çıkma oranı kaçtır? sorusu için örnek komut dosyaları verilmiştir.
Standart SQL
Temmuz 2017'de trafik kaynağı başına hemen çıkma oranı |
---|
#standardSQL |
Eski SQL
Temmuz 2017'de trafik kaynağı başına hemen çıkma oranı |
---|
SELECT |
Alıcı türüne göre ortalama ürün sayfası görüntüleme sayısı (satın alma işlemi gerçekleştirenler ve gerçekleştirmeyenler)
Aşağıda, Temmuz 2017'de satın alma işlemi gerçekleştiren kullanıcılar için ortalama ürün sayfası görüntüleme sayısı kaçtır? sorusuna örnek komut dosyaları verilmiştir:
Standart SQL
Temmuz 2017'de satın alma işlemi gerçekleştiren kullanıcılar için ortalama ürün sayfası görüntüleme sayısı |
---|
#standardSQL |
Eski SQL
Temmuz 2017'de satın alma işlemi gerçekleştiren kullanıcılar için ortalama ürün sayfası görüntüleme sayısı |
---|
SELECT |
Aşağıda, Temmuz 2017'de satın alma işlemi gerçekleştirmeyen kullanıcılar için ortalama ürün sayfası görüntüleme sayısı kaçtır? sorusuna örnek komut dosyaları verilmiştir.
Standart SQL
Temmuz 2017'de satın alma işlemi gerçekleştirmeyen kullanıcılar için ortalama ürün sayfası görüntüleme sayısı |
---|
#standardSQL |
Eski SQL
Temmuz 2017'de satın alma işlemi gerçekleştirmeyen kullanıcılar için ortalama ürün sayfası görüntüleme sayısı |
---|
SELECT |
Alıcı başına ortalama işlem sayısı
Aşağıda, Temmuz 2017'de satın alma işlemi gerçekleştiren kullanıcı başına ortalama toplam işlem sayısı kaçtır? sorusu için örnek komut dosyaları verilmiştir:
Standart SQL
Temmuz 2017'de satın alma işlemi gerçekleştiren kullanıcı başına ortalama işlem sayısı |
---|
#standardSQL |
Eski SQL
Temmuz 2017'de satın alma işlemi gerçekleştiren kullanıcı başına ortalama işlem sayısı |
---|
SELECT |
Oturum başına harcanan ortalama para miktarı
Aşağıda, Temmuz 2017'de oturum başına harcanan ortalama paranı miktarı nedir? sorusu için örnek komut dosyaları verilmiştir:
Standart SQL
Temmuz 2017'de oturum başına harcanan ortalama para miktarı |
---|
#standardSQL |
Eski SQL
Temmuz 2017'de oturum başına harcanan ortalama para miktarı |
---|
SELECT |
İsabetler dizisi
Aşağıda, "Görüntülenen sayfaların dizisi nedir?" sorusu için örnek komut dosyaları verilmiştir:
Standart SQL
Temmuz 2017'de kullanıcılar tarafından görüntülenen sayfaların dizisi |
---|
#standardSQL |
Eski SQL
Temmuz 2017'de kullanıcılar tarafından görüntülenen sayfaların dizisi |
---|
SELECT |
Bu sorguda isabet türleri, etkinlik veya işlem etkileşimlerinin görünmemesi için PAGES
ile sınırlandırılır. Her çıktı satırı bir sayfa görüntülemeyi ifade eder ve SELECT
ifadesindeki alanlarda varsayılan sırada gösterilir.
İsabet veya oturum düzeyinde birden çok özel boyut
isabet düzeyinde özel boyut |
---|
SELECT fullVisitorId, visitId, hits.hitNumber, hits.time, |
oturum düzeyinde özel boyut |
---|
SELECT fullVisitorId, visitId, |
Her sorguda:
SELECT
ifadesi alakalı boyut ve metrik alanlarını sorgular.
MAX
işlevi:
- Özel boyutu yeni bir sütun olarak getirir. Birden çok özel boyutları yeni sütunlar olarak getirmek için fonksiyonu tekrarlayabilirsiniz.
WITHIN hits
veWITHIN RECORD
, BigQuery'deki tekrarlanan alanlar içindeki koşulu değerlendirir.MAX
içindeki koşul her özel boyut için değerlendirilir ancakindex=1 (hits)
veyaindex=2 (sessions)
olmayan tüm özel boyutlar içinNULL
sonucunu döndürür.- Diğer tüm değerler
NULL
olduğundan, isabetler için Özel Boyut 1 veya oturumlar için Özel Boyut 2'nin değeri olan maksimum değeri döndürür.
Gelişmiş sorgu örnekleri
Temel sorguları öğrendiğinize göre, BigQuery'de sunulan gelişmiş fonksiyonları ve özellikleri kullanarak sorgular oluşturabilirsiniz.
A Ürününü satın alan müşteriler tarafından satın alınan ürünler (Klasik E-ticaret)
Aşağıda, A ürününü satın alan müşteriler başka hangi ürünleri satın almıştır? sorusu için taslak bir komut dosyası verilmiştir.
A ürününü satın alan bir müşteri tarafından satın alınan ürünler (Klasik E-ticaret) |
---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
- İlk satırda, bir kullanıcı tarafından satın alınmış tüm diğer öğeleri seçersiniz ve toplama işlevi
COUNT()
, satın alınmış diğer her öğenin miktarını hesaplamak için kullanılır. Sonuç daha sonraquantity
etiketli bir alanda,other_purchased_products
olarak etiketlenmiş ürün alanındaki ilişkili öğesiyle birlikte gösterilir. - Gri alt sorguda, yalnızca işlem gerçekleştirmiş (
totals.transactions>=1
) ve bir işlem sırasında A ürününü satın almış (WHERE hits.item.productName CONTAINS 'Product Item Name A'
) benzersiz kullanıcıları (fullVisitorId
) seçersiniz.
En üst düzey (yeşil) sorgudaki kurallar (WHERE
ve AND
ifadeleri), hits.item.productName
kısmında bulunan, boş olan ve A ürününü içeren değerleri gözardı eder.
Bir müşteri Brighton Metallic Pens - 4 Set ürününü satın alırsa, diğer hangi ürün veya ürünleri satın almıştır? sorgusuna bir örnek aşağıda verilmiştir:
24 Haziran 2013 tarihinde "Brighton Metallic Pens (4 Set)" satın alan bir müşterinin satın aldığı ürünler |
---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
Dremel/BigQuery'de WHERE expr IN
kullanıldığında bir JOIN tetiklenir ve boyut kısıtlamaları uygulanır. Özellikle JOIN komutunun sağ tarafının boyutunun (bu durumda ziyaretçi sayısı) 8 MB'dan az olması gerekir. Dremel'de buna broadcast JOIN denir. Boyut 8 MB'ı geçtiğinde, JOIN EACH söz dizimi kullanılarak yapılan bir shuffled JOIN tetiklemeniz gerekir. Maalesef bu işlem IN kullanılarak yapılamaz ancak aynı sorgu bir JOIN ile yeniden yazılabilir.
A Ürününü satın alan müşteriler tarafından satın alınan ürünler (Geliştirilmiş E-ticaret)
Bu, önceki taslak sorguya benzer fakat Geliştirilmiş E-ticaret için çalışır. Birden çok güne yayılan verileri sorgulamak için TABLE_DATE_RANGE
işlevinin kullanılmasını da sağlar.
A ürününü satın alan bir müşteri tarafından satın alınan ürünler (Geliştirilmiş E-ticaret) |
---|
SELECT hits.product.productSKU AS other_purchased_products, COUNT(hits.product.productSKU) AS quantity |
Satın almadan önceki ortalama kullanıcı etkileşimi sayısı
Bu, yalnızca Analytics verilerine bağlı olan bir JOIN() [...] ON
komutu sorgusuna örnektir.
Aşağıda şu soru için taslak bir script verilmiştir: Satın almadan önceki ortalama kullanıcı etkileşimleri sayısı kaçtır?
satın almadan önceki kullanıcı etkileşimlerinin sayısı |
---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
- İlk satır, ürün başına ortalama kullanıcı etkileşimlerini bulmak için ana matematik işlemini gerçekleştirir ve bu sorgu, "Alias_Name_1" ve "Alias_Name_2" adı verilen iki alt sorgu arasında bir bağlantı oluşturur.
- "Alias_Name_1", bir ürün için kaydedilen tüm isabet sayılarını toplamak için
SUM()
toplama işlevini kullanan bir alan oluşturmak için kullanılır. - "Alias_Name_2",
COUNT()
işlevini kullanarak ürün başına kullanıcılar tarafından yapılan isabetlerin sayısını bulmak için kullanılır. - Son satır bağlantıdaki iki veri kümesi arasında paylaşılan ortak alanı (
hits.item.productSku
) gösterir.
10 Eylül 2013 tarihinde bir satın alım öncesindeki ortalama kullanıcı etkileşimlerinin sayısı kaçtır? sorgusuna bir örnek aşağıda verilmiştir:
10 Eylül 2013 tarihinde bir satın alım öncesindeki kullanıcı etkileşimlerinin sayısı |
---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
Ürün başına satılan stok yüzdesi
Bu, yalnızca Analytics verilerine değil, aynı zamanda Analytics dışı verilere de bağlı olan bir sorguya örnektir. İki veri kümesini birleştirerek kullanıcı davranışlarını daha bölümlendirilmiş bir düzeyde anlamaya başlayabilirsiniz. Analytics dışı verileri BigQuery içine aktarabilirsiniz ancak bunun aylık veri depolama ücretinize ekleneceğini unutmayın.
Aşağıda, Ürün başına satılan stok yüzdesi kaçtır? sorusu için taslak bir komut dosyası verilmiştir.
ürün başına satılan stok yüzdesi |
---|
SELECT AnalyticsImport.product_data_20130728.productId, ((( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold )) * 100 ) AS percentage_of_stock_sold |
- İlk satır iki alan sonucu getirir: tüm ürün kimliklerini içeren bir alan ve o ürün kimliği için satılan stokun yüzdesini gösteren matematik işlemi olan alan.
- Bu sorgu iki veri kümesine bağlı olduğundan
JOIN() ... ON
işlevini kullanmanız gerekir. Bu komut, iki veri kümesi arasındaki ortak alana bağlı olarak, bunlarda yer alan satırları birleştirir. Bu durumda,[ ‘Imported_DataSet’ ]
ve'Alias_Name'
şeklinde iki veri kümesi olur. [Imported_DataSet]
Analytics dışı veridir. Bu, kalan stok miktarıyla ilgili metrik alanını (Imported DataSet.’stock_left_field’
) ve ürün kimliği boyut alanını (Imported_DataSet.’productId_field’
) içeren veri kümesidir.‘Alias_Name’
, gri alt sorgunun döndürdüğü verilere atanan addır. Bu alt sorgu, ürün başına satılan toplam öğe miktarını bulmak için Analytics verilerini kullanır.- Son satır, iki veri kümesi arasındaki ortak alanı ve bunların nerede birleştirildiğini göstermek için
ON
ifadesini kullanır.
Bu sorguda bulunan değişkenlerin çoğu, kendilerine ön ek olarak eklenmiş (ör. Imported_DataSet.’productId_field’, Alias_Name.quantity_sold
) veri gruplarına sahiptir. Bu, hangi alanı seçtiğinizi netleştirmek ve değişkenin hangi veri kümesine ait olduğunu açık hale getirmek içindir.
28 Temmuz 2013 tarihinde ürün başına satılan stok yüzdesi kaçtır? sorgusuna bir örnek aşağıda verilmiştir:
28 Temmuz 2013 tarihinde ürün başına satılan stok yüzdesi |
---|
SELECT AnalyticsImport.product_data_20130728.productId, ( ( ( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold ) ) * 100 ) AS percentage_of_stock_sold |
Her bir ürünün kârlılığı
Aşağıda şu soru için taslak bir komut dosyası verilmiştir: Her bir ürünün kârlılığı nedir?
ürün başına kâr |
---|
SELECT Alias_Name.hits.item.productSku, ( Imported_DataSet.’product profit field’ * Alias_Name.quantity ) AS profit |
- İlk satır, her üründen elde edilen toplam kârı hesaplamak için yapılan matematik işlemini içerir.
- Gri alt sorgu, bir ürün satıldığında ne kadar kâr elde edildiği hakkında veri toplayan Analytics dışı verileri kullanır.
- Kırmızı alt sorgu, Analytics dışı verilerle birleştirilecek olan Analytics verileri alt sorgusudur. Ürün başına satılan parça miktarını hesaplar.
- Son satır, iki veri kümesinin paylaştığı alanı netleştirmek için
ON
ifadesini kullanır. Bu durumda, ürün kimliği numarasıdır.
28 Temmuz 2013 tarihinde her bir ürünün kârlılığı nedir? sorgusuna bir örnek aşağıda verilmiştir:
28 Temmuz 2013 tarihinde ürün başına kâr |
---|
SELECT two.hits.item.productSku, ((AnalyticsImport.product_data_20130728.productprice-AnalyticsImport.product_data_20130728.productcost)*two.quantity) AS profit |
Kâr, ürünün satış fiyatı ile üretim maliyeti arasındaki fark hesaplanarak bulunur. Bu bilgi, GA dışı veri kümesinde saklanır.
(Geri ödemeler de dikkate alınarak) her bir ürünün gerçek kârlılığı
Aşağıda şu soru için taslak bir komut dosyası verilmiştir: Her bir ürünün gerçek kârlılığı nedir?
ürün başına gerçek kâr |
---|
SELECT Alias_Name.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
- Bu, Her ürünün kârlılığı nedir? sorgusuna çok benzer. Tek fark, gri alt sorgudaki Analytics dışı veri kümesinde ve ilk satırda gerçek kârı hesaplamak için kullanılan matematik işlemindedir.
- Analytics dışı veri kümesinde, geri ödemeler için harcanan toplam para miktarını da hesaplarsınız (kırmızı alt sorgunun
SELECT
ifadesinde). - Ardından, 1. satırdaki matematik işlemiyle brüt kârınızdan geri ödemelere harcanan gelir tutarını çıkararak gerçek kârı bulursunuz.
Sorgu hakkında daha fazla bilgi edinmek için her bir ürünün kârlılığı bölümüne göz atın.
28 Temmuz 2013 tarihinde her bir ürünün gerçek kârlılığı nedir? sorgusuna bir örnek aşağıda verilmiştir:
28 Temmuz 2013 tarihinde ürün başına gerçek kâr |
---|
SELECT two.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
Gerçek kâr, bir ürünün kârlılığının geri ödeme yapılan ürünler dikkate alınarak hesaplanmasıyla belirlenir. Bir ürün için toplam geri ödeme tutarını hesaplamak için:
ürünün toplam geri ödeme tutarı = ( ürün fiyatı + ürünün geri ödeme teslim fiyatı ) * geri ödeme yapılan ürün sayısı