Gürültü yerleştirme

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

  1. 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.
  2. Sorgu düzenleyicide, Çalıştır'ı tıklayıp yeni işin ayrıntılarını girin.
  3. Gizlilik ayarları açma/kapatma düğmesini Gürültüyü kullan konumuna getirin.
  4. Sorguyu çalıştırın.
  5. Eklenen gürültüyü gözden geçirin.
  6. İ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:

  1. Raporlar'ı tıklayın.
  2. 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.
  3. Daha fazla bilgi için İşler > Ayrıntılar'ı tıklayın.
  4. İş ayrıntılarındaki Gizlilikle ilgili mesajlar bölümünü görüntüleyin. Sonuçlar, listelenen üç kategoriden birine girer.
  5. 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 yerine COUNT 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.