Gürültü yerleştirme, veritabanlarına sorgu gönderirken kullanıcı gizliliğini korumak amacıyla kullanılan bir tekniktir. Bu teknik, sorguların toplayıcı SELECT
ifadesine rastgele gürültü ekleme yöntemini kullanır. Bu gürültü, makul derecede doğru sonuçlar sunarken kullanıcı gizliliğini korur. Bu sayede, farklılık kontrollerine olan ihtiyacı ortadan kaldırır ve çıktı için gereken toplam eşiğini düşürür. Mevcut çoğu sorgu, bazı kısıtlamalara tabi olarak gürültü modunda yürütülebilir.
Gürültü yerleştirmeyi kullanmanın avantajları hakkında bilgi edinme
Farklılık kontrolleri uygulanmaz: Sorgular gürültü yerleştirme tekniğiyle çalıştırıldığında, Ads Data Hub satırları önceki sonuç kümeleriyle benzerlik nedeniyle filtrelemez. Bu sayede, kullanıcı gizliliğini korurken verilerinize dair bütünsel bir görünüm elde etmeye devam edebilirsiniz.
Sorun giderme işlemleri artık daha kolay: Satırlar yalnızca toplama şartları nedeniyle atlanır. Böylece, sorun giderme ve sorguları uyarlama işlemleri daha kolay olur.
Öğrenilmesi gereken yeni söz dizimleri yoktur: Farklılık kontrolleri yerine gürültüyü kullanmak için yeni sorgu söz dizimleri öğrenmeniz ya da çeşitli gizlilik konseptleri hakkında bilgi edinmeniz gerekmez.
Sonuç doğruluğu belirgindir: Sorgu başarıyla çalıştırıldığında beklenen gürültü miktarına sahip verilerin toplam oranı gösterilir.
Gürültünün gizlilik şartlarını nasıl etkileyeceği hakkında bilgi edinme
Farklılık kontrolleri: Gürültü yerleştirme, Ads Data Hub'daki mevcut farklılık kontrollerine bağlı değildir. Gürültü yerleştirme tekniğini kullandığınızda farklılık kontrolleri devre dışı bırakılır.
Toplama şartı: Gürültü yerleştirme, yaklaşık 20 veya daha fazla tekil kullanıcıyla temsil edilen gösterim verileri ve yaklaşık 10 ya da daha fazla tekil kullanıcıyla temsil edilen tıklama veya dönüşüm verileri sunar.
Statik denetlemeler: Etkisi yoktur.
Bütçeler ve sorgu sınırları: Gürültü kullanılarak yürütülen sorgular, farklılık kontrolleriyle kullanılan veri erişim limitlerini paylaşır. Farklılık kontrollerinde olduğu gibi, aynı sorguyu aynı veri kümesi üzerinde çok kez çalıştırırsanız veri kümesindeki sıklıkla sorgu gönderilen tarihlere erişiminizi kaybedebilirsiniz. Bu durum, değişken zaman aralığı sorguları çalıştırdığınızda veya aynı isteği birçok kez gönderdiğinizde ortaya çıkabilir.
Gürültü modu, sorgular içindeki veya genelindeki aynı toplu sonuçların yeniden hesaplanmasıyla ilgili daha katı ek sınırlar uygular. Veri erişim limitinde olduğu gibi, veri kümesinde sıklıkla sorgu gönderilen tarihlere erişimi kaybedebilirsiniz. Ancak aynı toplu sonuçların yeniden hesaplanmasına bağlı sınırlamalar yalnızca gürültü modundaki sorguları kısıtlar ve farklılık kontrolü modundaki sorguları kısıtlamaz. Daha fazla bilgi için Tekrarlanan sonuçlar bölümüne bakın.
Gizlilik kontrolleri hakkında daha fazla bilgi edinin.
Gürültü yerleştirmenin sonuçları nasıl etkileyeceğini anlama
Ads Data Hub, verilerin ifşa olması riskini azaltmak amacıyla gürültü yerleştirir. Bu risk, kullanıcı hakkındaki bilgilerin başkaları tarafından öğrenilmesi olarak tanımlanabilir. Gizlilikle kullanışlılık arasında denge kurar.
Ads Data Hub'daki gürültü yerleştirme tekniği, sorgu sonuçlarını şu şekilde dönüştürür:
- Aykırı kullanıcıların toplu sonuçlara olan etkisini sınırlar. Her kullanıcının her toplama işlemine olan katkısını özetler ve her katkıyı minimum ile maksimum kısıtlama aralığıyla sınırlar.
- Sınırlama uygulanan kullanıcı katkılarını toplar.
- Her toplama sonucuna gürültü ekler. Bunlar, her satırda bulunan toplama işlevi çağrısının sonucudur. Bu rastgele gürültünün ölçeği, kısıtlama sınırlarıyla doğru orantılıdır.
- Her satır için gürültü uygulanmış bir kullanıcı sayısı hesaplar ve kullanıcı sayısı çok az olan satırları çıkarır. Bu, farklılık kontrolü modundaki k-anonimliğe benzer ancak gürültü nedeniyle aynı veri kümesinde çalıştırılan işler farklı satırlar bırakabilir. Ayrıca gürültü modu, toplama şartının daha düşük olması nedeniyle daha az satır bırakır (yaklaşık 20 ve tam olarak 50).
Nihai sonuçta, her satırda gürültü uygulanmış toplu sonuçların bulunduğu ve küçük grupların çıkarıldığı bir veri kümesi elde edilir. Bu yöntem, tek bir kullanıcıların döndürülen sonuçlar üzerindeki etkisini maskeler.
Toplama sınırlaması hakkında
Ads Data Hub'daki gürültü yerleştirme tekniği, aykırı kullanıcıların katkısını kısıtlamak için örtülü ve açık toplama sınırlama türünü kullanır. Kullanım alanınıza bağlı olarak hangi sınırlama türünün kullanılacağını seçebilirsiniz.
Örtülü sınırlama
Örtülü sınırlamada, sınırlar otomatik olarak belirlenir. Örtülü sınırlamayı kullanmak için özel bir SQL söz dizimi kullanmanız gerekmez. Satırlardan birinin değer aralığı diğerlerinden daha genişse örtülü sınırlama, bu satır için farklı sınırlar bulur. Bu durum genellikle her sonuçta daha düşük hata payı sağlar. Öte yandan, her toplamaya farklı sınırlama sınırları ve gürültü düzeyleri verilir. Bu durum, toplamaların karşılaştırılmasını zorlaştırır.
Örtülü sınırlama, toplama çok az sayıda kullanıcıdan veri aldığında başarısız olabilir. Örneğin, nadir bir koşul içeren COUNTIF()
çağrısı. Bu tür durumlarda NULL
sonuçlar döndürülür. Ayrıca COUNT(DISTINCT user_id)
; 0
ve 1
sınırlarıyla otomatik olarak açık sınırlama kullanır.
Açık sınırlama
Açık sınırlama, her kullanıcının toplam katkısını belirtilen bir aralıkla sınırlar. Açık sınırlar, tüm satırlara eşit şekilde uygulanır ve değişmez değer olmalıdır. Bazı satırların kullanıcı başına katkı aralıkları diğerlerinden daha geniş olsa da tümüne aynı sınırlar uygulanır. Bu durum, farklı satırlardan elde edilen sonuçların daha kolay karşılaştırmasını sağlar. Ancak, bazı satırlar örtülü sınırlamada alacaklarından daha fazla gürültü alabilirler.
Açık sınırlama, belirli bir dizi sınırlama sınırı için örtülü sınırlamaya kıyasla yarı yarıya daha az gürültü kullanır. Bu nedenle, makul sınırları tahmin edebiliyorsanız bunları açık şekilde ayarlayarak daha iyi sonuçlar elde edebilirsiniz.
Açık sınırlamayı kullanmak için desteklenen her toplama işlevine yönelik sınırları belirleyin. Bunun için alt sınırı ve üst sınırı temsil eden tamsayılar ekleyin. Örneğin:
SELECT
campaign_name,
-- Set lower and upper bounds to 0 and 1, respectively
ADH.ANON_COUNT(*, contribution_bounds_per_group => (0,1))
FROM data
GROUP BY 1
Gürültü yerleştirmeyi kullanarak sorgu çalıştırma
- Bir sorgu yazın veya mevcut sorgulardan birini açın. Hangi toplama işlevlerinin kullanılabileceğini öğrenmek için Desteklenen işlevler bölümüne bakın.
- Sorgu düzenleyicide, Çalıştır'ı tıklayıp yeni işin ayrıntılarını girin.
- Gizlilik ayarları açma/kapatma düğmesini Gürültüyü kullan konumuna getirin.
- Sorguyu çalıştırın.
- Eklenen gürültüyü gözden geçirin.
- İsteğe bağlı: Gürültünün etkisini azaltmak için sorguyu uyarlayın.
Gürültünün etkisini inceleme
Sorgu başarıyla tamamlandıktan sonra Ads Data Hub, sonucun güvenilirliğini görüntüler. Güvenilirlik, çıktıdaki hücrelerden kaçında beklenen gürültü miktarının olduğuna göre belirlenir. Sonuç tablosundaki bir değere eklenen gürültünün ölçeği, hücredeki sonucun %5'inden fazlaysa gürültünün bu değere olan etkisi çok yüksek olarak değerlendirilir. Etki aralıklarını aşağıdaki tabloda görebilirsiniz.
Etkilenen çıktı veri kümelerine yönelik Ayrıntılar sekmesinde, en yüksek etkiden en düşük etkiye doğru olacak şekilde en çok gürültü uygulanan 10 sütun ve bunların gürültüye katkıları listelenir. Burada, beklenen gürültü miktarının dağılımı verilir.
Beklenen gürültü miktarına sahip veriler | Gösterge rengi | Etki |
---|---|---|
>%95 | Yeşil | Düşük etki |
%85-%95 | Sarı | Orta düzey etki |
%75-%85 | Turuncu | Yüksek etki |
<%75 | Kırmızı | Çok yüksek etki |
Gürültü etkisiyle ilgili ayrıntılı bilgileri görüntülemek için:
- Raporlar'ı tıklayın.
- Listeden bir rapor seçin. Gizlilik özeti ipucu, beklenen gürültü miktarına sahip sonuçların oranını gösterir. Bu miktar, sonucun %5'inden büyük olan eklenen gürültü miktarına karşılık gelir.
- Daha fazla bilgi için İşler > Ayrıntılar'ı tıklayın.
- İş ayrıntılarındaki Gizlilikle ilgili mesajlar bölümünü görüntüleyin. Sonuçlar, listelenen üç kategoriden birine girer.
- Gerekirse sonucu iyileştirmek için sorgunuzu ayarlayabilirsiniz.
Sorguları uyarlama
Sonuçlara az sayıda kullanıcı katkıda bulunduğunda, toplu sonuçlarda beklenmedik miktarda gürültü olma olasılığı daha yüksektir. Bu durum, satırlarda az sayıda kullanıcı olduğunda ya da bazı kullanıcılar sonuçları etkilemediğinde (COUNTIF
işlevinin kullanıldığı durumlar gibi) ortaya çıkabilir. Gürültü ayrıntılarına göre, sorgunuzu beklenen gürültü miktarına sahip verilerin oranını artıracak şekilde ayarlayabilirsiniz.
Genel kurallar şu şekildedir:
- Tarih aralığını genişletin.
- Daha az sayıda parametreye göre gruplandırma veya
COUNTIF
yerineCOUNT
değerini kullanma gibi yöntemlerle sorguyu verilerin ayrıntı düzeyini azaltacak şekilde yeniden yazın. - Gürültü uygulanmış sütunları kaldırın.
- Açık sınırlama kullanın.
Desteklenen toplama işlevleri
Şu toplama işlevleri gürültüyle desteklenir:
SUM(...)
COUNT(*)
COUNT(...)
COUNTIF(...)
COUNT(DISTINCT user_id)
APPROX_COUNT_DISTINCT(user_id)
AVG(...)
DISTINCT
anahtar kelimesi yalnızca COUNT
işleviyle ve yalnızca bir Ads Data Hub tablosundan user_id
sütununa verilen doğrudan referansla ya da COUNT(DISTINCT IF(..., user_id, NULL))
gibi user_id
veya NULL
döndüren bir ifadeyle birlikte kullanıldığında desteklenir.
Şu işlevler doğrudan desteklenmez ancak istatistiksel sonuç almak için gürültü içeren diğer toplamalarla değiştirilebilir. Sayısal değerlerin yalnızca örnek amaçlı olarak verildiğini unutmayın:
LOGICAL_OR(...)
. Yerine önerilen:COUNT(DISTINCT IF(..., user_id, NULL)) > 0
LOGICAL_AND(...)
. Yerine önerilen:COUNT(DISTINCT IF(NOT ..., user_id, NULL)) <= 0
Tamsayı sonuçlar hakkında
Ads Data Hub bu toplama işlevleri için gürültü yerleştirme işlemini otomatik olarak yapsa da işlev imzaları değişmez. COUNT
veya SUM
gibi INT64
işlevleri INT64
değeri döndürdüğünden, gürültü uygulanan sonucun ondalık kısımları yuvarlanır. Yuvarlanan kısım genellikle sonucun ve gürültünün boyutuyla kıyaslandığında göz ardı edilebilir bir miktardır.
Sonuçlarınızda ondalık kısımları ayrıntılı olarak görmeniz gerekiyorsa INT64
değer döndüren işlevler yazmayın. (Örneğin girdisi FLOAT64
değere dönüştürülen SUM
kullanarak.)
Desteklenen sorgu kalıpları
Önemli: Ads Data Hub'ın standart en iyi uygulamalarının birçoğu, gürültü yerleştirme tekniğini kullanan sorgular için hâlâ geçerlidir. Özellikle aynı verilere tekrar sorgu gönderme rehberini incelemenizi öneririz.
Bu bölümde, gürültü yerleştirme tekniğini kullanan sorgular çalıştırırken desteklenen sorgu kalıpları açıklanmaktadır.
Kullanıcı düzeyinde toplamalar
Kullanıcı düzeyindeki kısıtlamasız toplama işlemleri, farklılık kontrolü modundakiyle aynı şekilde desteklenir. Yalnızca birden çok kullanıcıdan edinilen verileri birleştiren toplama işlemlerine gürültü yerleştirilir. Açıkça user_id
değerine göre gruplandırılan toplama işlemleri veya user_id
değerine göre bölümlenen analiz işlevlerine gürültü eklenmez ve tüm işlevlere izin verilir. GROUP BY impression_id
gibi açıkça user_id
değerine göre gruplandırılmayan kullanıcı düzeyinde toplama işlemleri kullanıcılar arası toplama olarak değerlendirildiği için bu toplama işlemlerine gürültü eklenir.
external_cookie değerine göre gruplandırmak yeterli değildir. *_match tablolarını müşteriye ait tablolarla birleştirmek için external_cookie değeri kullanılabilir. Ancak tüm tek kullanıcılı toplama işlemleri yalnızca external_cookie sütununa göre değil, user_id sütununa göre de açıkça gruplandırılmalıdır.
Toplama işlevi örneği:
WITH user_paths AS (
# Grouping by user_id, no noise needed, all functions allowed
SELECT user_id, STRING_AGG(campaign_id, ">" ORDER BY query_id.time_usec) AS path
FROM adh.google_ads_impressions
GROUP BY 1
)
# Noise applied here to num_users
SELECT path, COUNT(*) AS num_users
FROM user_paths
GROUP BY 1;
Analiz işlevi örneği:
WITH events AS (
# Partitioning by user_id, no noise needed, all functions allowed
SELECT
campaign_id,
ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY query_id.time_usec) AS index
FROM adh.google_ads_impressions
)
# Noise applied here to first_impressions
SELECT campaign_id, COUNT(*) AS first_impressions
FROM events
WHERE index = 1
GROUP BY 1;
Paralel toplamalar
Her kullanıcılar arası toplama işlemine ayrı ayrı gürültü eklenir. Bu türden birden çok toplama işlemini tek bir ifadede çalıştırabilir, sonuçları JOIN
veya UNION
kullanarak tek bir tabloda birleştirebilirsiniz.
Örnek:
WITH result_1 AS (
# Noise applied here to num_impressions
SELECT campaign_id, COUNT(*) AS num_impressions
FROM adh.google_ads_impressions
GROUP BY 1
), result_2 AS (
# Noise applied here to num_clicks
SELECT campaign_id, COUNT(*) AS num_clicks
FROM adh.google_ads_clicks
GROUP BY 1
)
SELECT * FROM result_1 JOIN result_2 USING(campaign_id)
Bu örneğin destekleneceğini ancak farklılık kontrolü modunda kaçınılması gerektiğini unutmayın. Her paralel toplama işlemine ayrı ayrı gürültü uygulanıp filtrelendiğinden bu uygulama gürültü açısından soruna yol açmaz.
Birleştirilmemiş verilerle bir araya getirilmiş birleştirilmiş veriler
Ads Data Hub yalnızca user_id
ile bölümlendirilen analiz aralıklarını desteklediğinden, bu sonuçları ayrı ayrı toplamak ve tekrar toplamadan önce kendi içinde birleştirmek sıklıkla uygulanan bir çözümdür. Bu sorgular, gürültü modunda desteklenir ve gizlilik şartlarının daha erken aşamalarda çözümlenmesi nedeniyle farklılık kontrolü moduna kıyasla çoğunlukla daha iyi performans gösterir.
Örnek:
WITH campaign_totals AS (
# Noise applied here to campaign_imps
SELECT campaign_id, COUNT(*) AS campaign_imps
FROM adh.google_ads_impressions
GROUP BY 1
)
# Noise applied here to imps
SELECT campaign_id, demographics, campaign_imps, COUNT(*) AS imps
FROM adh.google_ads_impressions JOIN campaign_totals USING(campaign_id)
GROUP BY 1,2,3
Gürültü modu, AVG(campaign_imps)
gibi toplu sonuçların yeniden toplanmasına izin vermez.
Desteklenmeyen sorgu kalıpları
Bu bölümde, gürültü yerleştirmeyi kullanan sorgular çalıştırırken desteklenmeyen sorgu kalıpları açıklanmaktadır.
Geçerli tarihi içeren sorgular
Gürültü modu sorguları, geçerli tarihe ait verilere sorgu göndermeyi desteklemez. (Bu, farklılık kontrol modunda önerilmez.) Gürültü yerleştirme tekniğinin kullanıldığı sorgularda geçerli tarih seçilemez.
Tekrarlanan sonuçlar
Ads Data Hub, gürültü modunda aynı toplama işlemini tekrarlama sıklığını kısıtlar. Bu sınırlara ulaşırsanız gürültü modu sorgularınız, veri kümesinde sıklıkla sorgu gönderilen tarihlere erişimi kaybeder. Aşağıda bu durumun nasıl ortaya çıkabileceğiyle ilgili örnekler verilmiştir.
Sorgu tekrarı, aynı sorgu aynı veya çok benzer parametrelerle (çakışan tarih aralıkları gibi) birden çok kez çalıştırıldığında ortaya çıkar. BigQuery projenize aktarmış olduğunuz verileri kullanarak bu durumu önleyebilirsiniz.
Çakışan tarih aralıklarına iki iş sorgu gönderdiğinde, aynı kullanıcılar üzerinde aynı hesaplama işlemi yapılıyorsa bu işlerin tekrara neden olabileceğini unutmayın. Örneğin, çakışan tarih aralıkları üzerinde yürütülen aşağıdaki sorgu, tarihe göre bölümlendirme yaptığından tekrara neden olmaktadır.
SELECT DATE(TIMESTAMP_MICROS(event.event_time)) AS date,
COUNT(*) AS cnt
FROM adh.cm_dt_clicks
GROUP BY 1
Bu gibi durumlarda, sorguyu ayrı tarih segmentleri üzerinde çalıştırmanız gerekir.
Verilerin tarihten bağımsız olduğu durumlar da tekrara örnek verilebilir. Aşağıdaki sorgu, her iki işin kampanya süresinin tamamını kapsadığı çakışan tarihler üzerinde yürütüldüğünde tekrarlar oluşturuyor.
SELECT campaign_id, COUNT(*) AS cnt
FROM adh.google_ads_impressions
GROUP BY 1
Bu gibi durumlarda, sonuç değişmediği için bu sorguyu yalnızca bir kez çalıştırmanız gerekir.
Toplama tekrarı, aynı toplama işlemi bir sorgu içinde birden çok kez tekrarlandığında ortaya çıkar.
SELECT COUNT(*) AS cnt1, COUNT(*) AS cnt2
FROM table
Bu gibi durumlarda, tekrarlardan birini kaldırmanız gerekir.
Toplama işlemleri anlamsız biçimde farklıysa ancak aynı değeri hesaplıyorsa bunların tekrar olarak değerlendirileceğini unutmayın. Başka bir deyişle, condition1
ve condition2
değerleri, belirli bir key
değeri olan tüm kullanıcılar için aynıysa aşağıdaki sorguda tekrar oluşur:
SELECT key, COUNTIF(condition1) AS cnt1, COUNTIF(condition2) AS cnt2
FROM table
GROUP BY key
Bazı kullanıcı grupları için son derece benzer koşullarınız varsa sorguyu yalnızca bir COUNT
içerecek şekilde yeniden yazmanızı öneririz.
Satır yinelemesi, bir Ads Data Hub tablosu bir BigQuery tablosuyla birleştirilip Ads Data Hub tablosundaki her bir satır BigQuery tablosundaki birden çok satırla eşleştiğinde ortaya çıkar. Örneğin, aşağıdaki sorgu bq_table
içinde aynı kampanya kimliğini içeren birden fazla satır olduğunda tekrar oluşturur:
SELECT r.campaign_id, COUNT(*) AS cnt
FROM adh_table
INNER JOIN bq_table ON l.campaign_id = r.campaign_id
Bu durumda, sorguyu bq_table
tablosunda, her birleştirme anahtar/değeri (bu örnekte campaign_id
) başına yalnızca bir satır olacak şekilde yeniden yapılandırmanız gerekir.
Ads Data Hub tablosundan bir dizi çıkarıldığında, çoğu kullanıcının aynı değer dizilerine sahip olması durumunda aynı etkinin oluşabileceğini unutmayın:
SELECT in_market_id, COUNT(*)
FROM adh.dv360_youtube_impressions,
UNNEST(in_market) AS in_market_id
GROUP BY 1
Sorgu ile ilgili diğer en iyi uygulamalar hakkında bilgi edinin.
Doğrudan yeniden toplama
Gürültü, sorguda kullanıcılar arası toplamanın ilk katmanına uygulanır. Birden çok toplama katmanı olan sorgular engellenir:
WITH layer_1 AS (
# Noise applied here to partial_result
SELECT campaign_id, demographics, location, COUNT(*) AS partial_result
FROM adh.google_ads_impressions
GROUP BY 1,2,3
HAVING partial_result > 5
)
# Reaggregation of partial_result with no user-level data, will be rejected
SELECT campaign_id, SUM(partial_result) AS final_result
FROM layer_1
GROUP BY 1
Gürültüden en iyi sonuçları elde etmek için tüm kullanıcılar arası işlemleri tek bir toplamada hesaplayın. Örneğin, ara sayılara SUM
işlemi uygulamak yerine, etkinliklere SUM
işlevi uygulayın. Gürültü uygulanmış toplama işlemlerini yeniden toplamak için yeniden bir sorgu yazılabilir. Ancak bu durumda nihai toplama işlemlerinde çok daha yüksek bir gürültü olabilir.
Bu kaçınılmaz bir durumsa sorgunuzu yeniden yazarak sonuçları doğrudan birinci katmandan aktarabilirsiniz. Bunun için tek bir işte, komut dosyası sonuçlarını değiştirmeden OPTIONS(privacy_checked_export=true)
söz dizimini kullanarak bir geçici tablo (veya BigQuery projenize aktarılmış bir tablo) oluşturun. Örneğin:
CREATE TEMP TABLE layer_1 OPTIONS(privacy_checked_export=true) AS (
# Noise applied here to partial_result
SELECT campaign_id, demographics, location, COUNT(*) AS partial_result
FROM adh.google_ads_impressions
GROUP BY 1,2,3
HAVING partial_result > 5
);
# Reaggregation of privacy checked data, no noise needed
SELECT campaign_id, SUM(partial_result) AS final_result
FROM layer_1
GROUP BY 1
Geçici tablolar hakkında daha fazla bilgi edinin.
Toplamanın ilk katmanı gizlilik kontrolleri için fazla ayrıntılıysa sorguyu kullanıcı düzeyinde toplama kullanarak yeniden yazabilirsiniz. Bu mümkün değilse bu sorgu gürültü modunda desteklenmemektedir.
Birleştirilmemiş kullanıcı kimlikleri
Gürültü modundaki sorgular, gürültü ile toplama işlemi gerçekleştirilmediği sürece, ayrı kullanıcılardan gelen verileri tek bir satırda birleştirmemelidir. Sonuç olarak, user_id
sütununda açıkça birleştirme yapmak için toplanmamış Ads Data Hub verilerinin birleştirilmesi gerekir.
Bu sorgu, user_id
sütununda açıkça birleştirme yapmaz. Bu durum, doğrulama hatasına neden olur:
SELECT …
FROM adh.google_ads_impressions
JOIN adh.google_ads_clicks USING(impression_id)
Hata, USING
ifadesi user_id
dahil edilecek şekilde ayarlanarak (örneğin USING(impression_id, user_id)
) giderilebilir.
Bu kısıtlamanın yalnızca Ads Data Hub tabloları arasında (boyut tabloları hariç) yapılan birleştirme işlemleri için geçerli olduğunu unutmayın. Müşterilere ait tablolara uygulanmaz. Örneğin, şuna izin verilir:
SELECT …
FROM adh.google_ads_impressions
JOIN bigquery_project.dataset.table USING(any_column)
Ads Data Hub-BigQuery bütünleşmeleri
Gürültü ile toplama işlemleri, kullanıcı tanımlayıcıların iyi performans göstermesini gerektirir. BigQuery'deki müşteriye ait verilerde kullanıcı tanımlayıcı bulunmaz. Bu nedenle, bir Ads Data Hub tablosuna birleştirilmeden gürültü toplama işlemiyle bütünleştirilmez.
Bu sorgu, doğrulama hatasına neden olur:
SELECT COUNT(*) FROM (
SELECT 1 FROM adh.google_ads_impressions
UNION ALL
SELECT 1 FROM bigquery_project.dataset.table
)
Hatayı gidermek için bütünleştirme yerine BigQuery tablosunu birleştirerek Ads Data Hub verilerini zenginleştirmeniz ya da verileri her kaynağı ayrı ayrı toplayacak şekilde ayırmanız gerekir.
Kullanıcı verileri içeren birden çok Ads Data Hub tablosu ya da müşteriye ait BigQuery tablosu arasında bütünleştirme işlemi yapabilirsiniz ancak ikisini karıştıramazsınız.
Ads Data Hub-BigQuery sağ birleştirme işlemleri
Müşteriye ait verilerle dış birleştirme işlemleri, satırlarda kullanıcı tanımlayıcıların eksik olmasına neden olabilir. Bu durum, gürültünün iyi performans göstermesini önler.
Bu iki sorgunun her ikisi de Ads Data Hub tarafında kullanıcı tanımlayıcılarının eksik olduğu eşleşmeyen satırlara izin verdiği için doğrulama hatalarına neden olur:
SELECT …
FROM adh.google_ads_impressions
RIGHT JOIN bigquery_project.dataset.table USING(column)
SELECT …
FROM bigquery_project.dataset.table
LEFT JOIN adh.google_ads_impressions USING(column)
Tabloların sırası tersine çevrildiğinde iki birleştirme işleminin de çalışacağını unutmayın.
Filtrelenmiş Satır Özeti
Filtrelenmiş satır özeti, gürültü modunda desteklenmez. Bu özellik, düşük filtreleme hızları ve farklılık kontrollerindeki filtrelemenin eksik olması nedeniyle gürültüyle kullanımda çoğunlukla gereksizdir.
Gürültü sonuçlarında ciddi boyutlarda veri filtreleme olduğunu gözlemlerseniz birleştirilmiş veri miktarını artırın. Veri kümesinin tamamında paralel toplama işlemi yaparak toplam tahminini karşılaştırabilirsiniz. Örneğin:
SELECT campaign_name, COUNT(*)
FROM data
GROUP BY 1
UNION ALL
SELECT 'Total', COUNT(*)
FROM data
GROUP BY 1
Toplam sayıya ayrı ayrı gürültü uygulandığını ve toplam değerlerin uyuşmayabileceğini unutmayın. Ancak toplam sayı, genellikle gürültü uygulanan satırların toplamını alma işlemine kıyasla daha doğru sonuç verir.
Çapraz modda oluşturulan tablolar
Ads Data Hub'daki dışa aktarılmayan tablolar yalnızca oluşturuldukları gizlilik moduyla kullanılabilir. Tabloların önce BigQuery'ye aktarılması hariç olmak üzere, tabloları normal toplama modunda oluşturup gürültü modunda ya da gürültü modunda oluşturup normal toplama modunda kullanamazsınız.