Injeksi derau

Injeksi derau adalah teknik yang digunakan untuk melindungi privasi pengguna saat membuat kueri database. Ini bekerja dengan menambahkan derau acak ke klausa SELECT gabungan dari sebuah kueri. Derau ini melindungi privasi pengguna sekaligus memberikan hasil yang cukup akurat, sehingga tidak perlu adanya pemeriksaan perbedaan, dan mengurangi batas agregasi yang diperlukan untuk output. Sebagian besar kueri yang ada dapat dieksekusi dalam mode derau, dengan beberapa batasan.

Pelajari manfaat menggunakan injeksi derau

Pemeriksaan perbedaan tidak berlaku: Saat menjalankan kueri dengan injeksi derau, Ads Data Hub tidak memfilter baris karena kemiripan dengan kumpulan hasil sebelumnya. Ini berarti Anda masih bisa mendapatkan pandangan holistik terhadap data sekaligus melindungi privasi pengguna.

Pemecahan masalah disederhanakan: Baris hanya dihilangkan karena persyaratan agregasi, sehingga lebih mudah untuk memecahkan masalah dan menyesuaikan kueri.

Tidak ada sintaksis baru untuk dipelajari: Anda tidak perlu mempelajari sintaksis kueri baru atau memahami konsep privasi untuk menggunakan derau, bukan pemeriksaan perbedaan.

Akurasi hasil jelas: Tugas yang berhasil menampilkan persentase total data dengan jumlah derau yang diharapkan.

Pelajari bagaimana kebisingan memengaruhi persyaratan privasi

Pemeriksaan perbedaan: Injeksi derau tidak mengandalkan pemeriksaan perbedaan yang sudah ada di Ads Data Hub. Saat Anda menggunakan injeksi noise, pemeriksaan perbedaan akan dinonaktifkan.

Persyaratan agregasi: Injeksi derau menghasilkan data tayangan yang diwakili oleh sekitar 20 pengguna unik atau lebih, dan data klik atau konversi yang diwakili oleh sekitar 10 pengguna unik atau lebih.

Pemeriksaan statis: Tidak ada dampak.

Batas anggaran dan kueri: Kueri yang dijalankan menggunakan pembagian derau dari anggaran akses data yang digunakan dengan pemeriksaan perbedaan. Seperti pemeriksaan perbedaan, jika Anda sering menjalankan kueri yang sama pada set data yang sama, Anda mungkin kehilangan akses ke tanggal yang sering dikueri dalam set data. Hal ini dapat terjadi jika Anda menjalankan kueri jendela geser, atau jika Anda membuat permintaan yang sama beberapa kali.

Mode derau menerapkan batas tambahan yang lebih ketat untuk penghitungan ulang hasil gabungan yang sama di dalam atau di seluruh kueri. Seperti anggaran akses data, Anda dapat kehilangan akses ke tanggal yang sering dikueri dalam set data; tetapi batasan karena penghitungan ulang hasil gabungan yang sama hanya akan membatasi kueri dalam mode derau, bukan kueri dalam mode pemeriksaan perbedaan. Untuk mengetahui informasi selengkapnya, lihat Hasil berulang.

Pelajari pemeriksaan privasi lebih lanjut.

Memahami pengaruh injeksi derau terhadap hasil

Ads Data Hub memasukkan derau untuk mengurangi risiko pengungkapan—risiko sehingga seseorang dapat mempelajari informasi tentang pengguna perorangan. Ini menyeimbangkan privasi dengan utilitas.

Injeksi derau di Ads Data Hub mengubah hasil kueri sebagai berikut:

  • Model ini membatasi kontribusi pengguna dari pencilan dalam hasil gabungan. Fitur ini menjumlahkan kontribusi setiap pengguna di setiap agregasi, lalu membatasi setiap kontribusi dengan batas klem minimum dan maksimum.
  • Fitur ini menggabungkan kontribusi per pengguna yang dibatasi.
  • Metode ini menambahkan derau ke setiap hasil agregat—hasil dari setiap panggilan fungsi agregasi di setiap baris. Skala derau acak ini sebanding dengan batas yang dijepit.
  • Metode ini menghitung jumlah pengguna yang memiliki derau untuk setiap baris dan menghilangkan baris dengan pengguna yang terlalu sedikit. Ini mirip dengan k-anonymity dalam mode pemeriksaan perbedaan, tetapi karena berisi noise, tugas yang berjalan pada set data yang sama dapat menghapus baris yang berbeda. Selain itu, mode derau menghapus lebih sedikit baris karena persyaratan agregasi lebih rendah (sekitar 20 versus tepat 50).

Hasil akhirnya adalah set data dengan setiap baris memiliki hasil agregat yang berisi derau dan grup kecil telah dieliminasi. Ini akan menyamarkan efek pengguna individual pada hasil yang ditampilkan.

Tentang pembatasan agregasi

Injeksi derau di Ads Data Hub menggunakan pembatasan agregasi implisit atau eksplisit untuk membatasi kontribusi pencilan. Anda dapat memilih jenis penjepit yang akan digunakan, tergantung pada kasus penggunaan Anda.

Penjepit implisit

Dalam clamping implisit, batas ditentukan secara otomatis. Anda tidak memerlukan sintaksis SQL khusus untuk menggunakan klem implisit. Jika satu baris memiliki rentang nilai yang lebih luas daripada yang lain, pembatas implisit akan menemukan batas yang berbeda untuk baris tersebut. Hal ini biasanya memberikan margin error yang lebih rendah untuk setiap hasil. Di sisi lain, setiap agregasi memiliki batas clamping dan level derau yang berbeda, yang dapat membuatnya sulit dibandingkan.

Penjepit implisit dapat gagal saat agregasi mendapatkan data dari terlalu sedikit pengguna—misalnya, panggilan COUNTIF() dengan kondisi yang jarang terjadi. Kasus ini menampilkan hasil NULL. Perhatikan juga bahwa COUNT(DISTINCT user_id) otomatis menggunakan penjepit eksplisit dengan batas 0 dan 1.

Penjepit vulgar

Pembatasan eksplisit membatasi total kontribusi dari setiap pengguna ke rentang yang ditentukan. Batas eksplisit diterapkan secara seragam ke semua baris dan harus berupa nilai literal. Meskipun beberapa baris memiliki rentang kontribusi per pengguna yang lebih luas daripada yang lain, batas yang sama berlaku untuk semua baris tersebut. Hal ini membuat hasil dari baris yang berbeda menjadi lebih sebanding, meskipun beberapa baris mendapatkan lebih banyak derau daripada dengan klem implisit.

Penjepit eksplisit menggunakan derau separuh lebih banyak dibandingkan klem implisit, untuk sekumpulan batas penjepit tertentu. Oleh karena itu, jika dapat memperkirakan batas yang wajar, Anda akan mendapatkan hasil yang lebih baik dengan menetapkannya secara eksplisit.

Untuk menggunakan klem eksplisit, tetapkan batas untuk setiap fungsi agregat yang didukung dengan menambahkan bilangan bulat yang mewakili batas bawah dan batas atas. Contoh:

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

Menjalankan kueri menggunakan injeksi derau

  1. Tulis kueri atau buka kueri yang sudah ada. Untuk melihat fungsi agregat yang dapat digunakan, lihat Fungsi yang didukung.
  2. Di editor kueri, klik Run, masukkan detail tugas baru.
  3. Klik tombol Privacy settings ke posisi Use noise.
  4. Jalankan kueri.
  5. Meninjau derau yang ditambahkan.
  6. Opsional: Sesuaikan kueri untuk mengurangi dampak derau.

Meninjau dampak derau

Setelah kueri berhasil diselesaikan, Ads Data Hub akan menampilkan keandalan hasil, berdasarkan jumlah sel dalam output yang memiliki jumlah derau yang diharapkan. Nilai dalam tabel hasil dianggap sangat terpengaruh jika skala derau yang ditambahkan lebih besar dari 5% hasil dalam sel. Lihat rentang dampak dalam tabel berikut.

Untuk set data output yang terpengaruh, tab detail mencantumkan 10 kolom paling berisik dari dampak tertinggi hingga terendah dan kontribusinya yang sesuai terhadap derau. Ini adalah perincian jumlah derau yang diharapkan.

Data dengan jumlah derau yang diharapkan Warna indikator Dampak
>95% Hijau Berdampak rendah
85%-95% Kuning Dampak sedang
75%-85% Orange Berdampak tinggi
<75% Merah Dampak sangat tinggi

Untuk melihat informasi mendetail tentang dampak derau:

  1. Klik Laporan.
  2. Pilih laporan dari daftar. Tooltip ringkasan privasi menunjukkan persentase hasil yang memiliki jumlah derau yang diharapkan, yang sesuai dengan jumlah derau yang ditambahkan yang lebih besar dari 5% hasil.
  3. Untuk melihat informasi selengkapnya, klik Lowongan > Detail
  4. Lihat Pesan privasi di detail lowongan. Hasilnya termasuk dalam salah satu kategori yang tercantum.
  5. Jika perlu, sesuaikan kueri Anda untuk meningkatkan hasilnya.

Menyesuaikan kueri

Hasil gabungan lebih cenderung memiliki jumlah derau yang tidak terduga jika sedikit pengguna yang berkontribusi pada hasil tersebut. Hal ini dapat terjadi jika baris memiliki sedikit pengguna atau saat beberapa pengguna tidak memengaruhi hasil—misalnya, saat menggunakan fungsi COUNTIF. Berdasarkan detail derau, sebaiknya sesuaikan kueri untuk meningkatkan persentase data dengan jumlah derau yang diharapkan.

Berikut ini adalah pedoman umum:

  • Perluas rentang tanggal.
  • Tulis ulang kueri untuk mengurangi perincian data, misalnya dengan mengelompokkan menurut lebih sedikit parameter atau mengganti COUNTIF dengan COUNT.
  • Hapus kolom yang berisi derau.
  • Gunakan pembatasan eksplisit.

Fungsi agregat yang didukung

Fungsi agregat berikut didukung dengan derau:

  • SUM(...)
  • COUNT(*)
  • COUNT(...)
  • COUNTIF(...)
  • COUNT(DISTINCT user_id)
  • APPROX_COUNT_DISTINCT(user_id)
  • AVG(...)

Kata kunci DISTINCT hanya didukung dengan fungsi COUNT, dan hanya jika digunakan dengan referensi langsung ke kolom user_id dari tabel Ads Data Hub atau ekspresi yang menampilkan user_id atau NULL, seperti COUNT(DISTINCT IF(..., user_id, NULL)).

Fungsi berikut tidak secara langsung didukung, tetapi dapat diganti dengan agregat lain dengan derau untuk mendapatkan hasil statistik. Perhatikan bahwa nilai numerik hanyalah contoh:

  • LOGICAL_OR(...). Penggantian yang disarankan: COUNT(DISTINCT IF(..., user_id, NULL)) > 0
  • LOGICAL_AND(...). Penggantian yang disarankan: COUNT(DISTINCT IF(NOT ..., user_id, NULL)) <= 0

Tentang hasil bilangan bulat

Meskipun Ads Data Hub akan otomatis memasukkan derau untuk fungsi agregasi ini, tanda tangan fungsi tidak berubah. Karena fungsi seperti COUNT atau SUM dari INT64 menampilkan INT64, bagian desimal apa pun dari hasil yang di-noise akan dibulatkan. Ukuran ini biasanya dapat diabaikan dibandingkan dengan ukuran hasil dan derau.

Jika Anda memerlukan perincian desimal dalam hasil Anda, hindari penulisan fungsi yang menampilkan INT64–misalnya, dengan menggunakan SUM dengan transmisi inputnya ke FLOAT64.


Pola kueri yang didukung

Penting: Sebagian besar praktik terbaik standar Ads Data Hub masih berlaku untuk kueri yang menggunakan injeksi derau. Secara khusus, sebaiknya tinjau panduan tentang berulang kali membuat kueri data yang sama.

Bagian ini menjelaskan pola kueri yang didukung saat menjalankan kueri menggunakan injeksi derau.

Agregat tingkat pengguna

Agregat tingkat pengguna yang tidak dibatasi didukung dengan cara yang sama seperti berada dalam mode pemeriksaan perbedaan. Derau hanya dimasukkan dalam agregasi yang menggabungkan data di beberapa pengguna. Agregasi yang secara eksplisit mengelompokkan menurut user_id, atau fungsi analisis yang dipartisi menurut user_id, tidak menerima derau apa pun dan fungsi apa pun diizinkan. Agregasi tingkat pengguna yang tidak secara eksplisit dikelompokkan berdasarkan user_id–misalnya, GROUP BY impression_id, diperlakukan sebagai agregasi lintas-pengguna sehingga derau ditambahkan.

Pengelompokan berdasarkan external_cookie tidak cukup. Meskipun external_cookie dapat digunakan untuk menggabungkan tabel *_match dengan tabel milik pelanggan, setiap agregasi pengguna tunggal harus secara eksplisit mengelompokkan menurut kolom user_id, bukan hanya kolom external_cookie.

Contoh fungsi agregat:

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;

Contoh fungsi analisis:

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;

Agregat paralel

Setiap agregasi lintas-pengguna menerima derau secara independen. Anda dapat menjalankan beberapa agregasi tersebut dalam satu pernyataan, yang menggabungkan hasil ke dalam satu tabel menggunakan JOIN atau UNION.

Contoh:

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)

Perhatikan bahwa tindakan ini akan didukung, tetapi harus dihindari dalam mode pemeriksaan perbedaan. Praktik ini tidak menjadi masalah dengan derau, karena setiap agregat paralel akan di-noise dan difilter secara terpisah.

Data gabungan yang digabungkan dengan data yang tidak diagregasi

Karena Ads Data Hub hanya mendukung jendela analisis yang dipartisi dengan user_id, merupakan solusi umum untuk menggabungkan hasil ini secara terpisah dan bergabung sendiri sebelum menggabungkan lagi. Kueri ini didukung dalam mode derau, dan sering kali berperforma lebih baik daripada dalam mode pemeriksaan lain karena persyaratan privasi telah diselesaikan sebelumnya.

Contoh:

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

Mode derau melarang agregasi hasil agregat, seperti AVG(campaign_imps).


Pola kueri yang tidak didukung

Bagian ini menjelaskan pola kueri yang tidak didukung saat menjalankan kueri menggunakan injeksi derau.

Kueri yang mencakup hari ini

Kueri mode derau tidak mendukung pembuatan kueri untuk data hari ini. (Tidak direkomendasikan dalam mode pemeriksaan perbedaan.) Tanggal saat ini tidak dapat dipilih untuk kueri yang menggunakan injeksi derau.

Hasil berulang

Dalam mode derau, Ads Data Hub membatasi seberapa sering Anda dapat mengulangi agregasi yang sama. Jika Anda mencapai batas ini, kueri mode derau akan kehilangan akses ke tanggal yang sering dikueri dalam set data. Berikut adalah contoh bagaimana hal ini dapat terjadi.

Pengulangan kueri terjadi jika kueri yang sama dijalankan beberapa kali dengan parameter yang sama atau parameter yang sangat mirip, seperti rentang tanggal yang tumpang-tindih. Anda dapat menghindari hal ini dengan menggunakan data yang sudah diekspor ke project BigQuery.

Perhatikan bahwa jika dua tugas mengkueri rentang tanggal yang tumpang-tindih, tugas tersebut mungkin akan menghasilkan pengulangan jika melakukan komputasi yang sama pada pengguna yang sama. Misalnya, kueri berikut, yang dieksekusi pada rentang tanggal yang tumpang-tindih, membuat pengulangan karena mempartisi berdasarkan tanggal:

SELECT DATE(TIMESTAMP_MICROS(event.event_time)) AS date,
COUNT(*) AS cnt
FROM adh.cm_dt_clicks
GROUP BY 1

Dalam hal ini, Anda harus menjalankan kueri pada segmen tanggal yang terpisah.

Contoh lain dari pengulangan terjadi ketika data agak independen tanggal. Kueri berikut menghasilkan pengulangan saat dijalankan pada tanggal yang tumpang-tindih, dengan kedua tugas tersebut mencakup seluruh masa aktif kampanye:

SELECT campaign_id, COUNT(*) AS cnt
FROM adh.google_ads_impressions
GROUP BY 1

Dalam hal ini, Anda hanya boleh menjalankan kueri ini sekali karena hasilnya tidak berubah.

Pengulangan agregasi terjadi saat agregasi yang sama diulang beberapa kali dalam kueri:

SELECT COUNT(*) AS cnt1, COUNT(*) AS cnt2
FROM table

Dalam hal ini, Anda harus menghapus salah satu pengulangan.

Perhatikan bahwa meskipun agregasi berbeda secara sintaksis tetapi menghitung nilai yang sama, agregasi akan dihitung sebagai pengulangan. Dengan kata lain, jika nilai condition1 dan condition2 sama untuk semua pengguna dengan beberapa nilai key, kueri berikut akan memiliki pengulangan:

SELECT key, COUNTIF(condition1) AS cnt1, COUNTIF(condition2) AS cnt2
FROM table
GROUP BY key

Jika Anda memiliki kondisi yang sangat serupa untuk beberapa grup pengguna, sebaiknya pertimbangkan untuk menulis ulang kueri agar hanya memiliki satu COUNT.

Duplikasi baris terjadi saat tabel Ads Data Hub digabungkan dengan tabel BigQuery sehingga setiap baris dari tabel Ads Data Hub cocok dengan beberapa baris di tabel BigQuery. Misalnya, kueri berikut menghasilkan pengulangan jika ada beberapa baris dengan ID kampanye yang sama di bq_table:

SELECT r.campaign_id, COUNT(*) AS cnt
FROM adh_table
INNER JOIN bq_table ON l.campaign_id = r.campaign_id

Dalam hal ini, Anda harus menyusun ulang kueri sehingga bq_table hanya akan memiliki satu baris per nilai kunci gabungan (dalam hal ini, campaign_id).

Perhatikan bahwa membatalkan bertingkat array dari tabel Ads Data Hub dapat menghasilkan efek yang sama jika sebagian besar pengguna memiliki array nilai yang sama:

SELECT in_market_id, COUNT(*)
FROM adh.dv360_youtube_impressions,
UNNEST(in_market) AS in_market_id
GROUP BY 1

Pelajari praktik terbaik kueri lainnya.

Agregasi ulang langsung

Derau diterapkan ke lapisan pertama agregasi lintas-pengguna dalam kueri. Kueri dengan beberapa lapisan agregasi diblokir:

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

Untuk mendapatkan hasil terbaik dari derau, hitung semua operasi lintas-pengguna dalam satu agregasi. Misalnya, ambil peristiwa SUM, bukan SUM dari jumlah menengah. Anda dapat menulis ulang kueri untuk mengagregasi ulang agregat yang memiliki derau, tetapi agregat akhir mungkin memiliki derau yang jauh lebih tinggi.

Jika hal ini tidak dapat dihindari, Anda dapat menulis ulang kueri untuk mengekspor hasil langsung dari lapisan pertama. Untuk melakukan ini dalam satu tugas tanpa mengubah hasil skrip, buat tabel sementara (atau tabel yang diekspor ke project BigQuery Anda) dengan sintaksis OPTIONS(privacy_checked_export=true). Contoh:

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

Pelajari tabel sementara lebih lanjut.

Jika lapisan pertama agregasi terlalu terperinci untuk pemeriksaan privasi, pertimbangkan untuk menulis ulang kueri dengan agregat tingkat pengguna. Jika tidak memungkinkan, kueri ini tidak didukung dalam mode derau.

ID pengguna yang belum bergabung

Kueri dalam mode derau tidak boleh menggabungkan data dari pengguna terpisah menjadi satu baris, kecuali saat melakukan agregasi dengan derau. Akibatnya, penggabungan data Ads Data Hub yang tidak diagregasi harus digabungkan secara eksplisit di kolom user_id.

Kueri ini tidak secara eksplisit bergabung pada kolom user_id, sehingga mengakibatkan error validasi:

SELECT …
FROM adh.google_ads_impressions
JOIN adh.google_ads_clicks USING(impression_id)

Hal ini dapat diperbaiki dengan menyesuaikan klausa USING untuk menyertakan user_id secara eksplisit, misalnya USING(impression_id, user_id).

Perhatikan bahwa batasan ini hanya berlaku untuk penggabungan antar-tabel Ads Data Hub (kecuali tabel dimensi). Ini tidak berlaku untuk tabel milik pelanggan. Misalnya, hal berikut diizinkan:

SELECT …
FROM adh.google_ads_impressions
JOIN bigquery_project.dataset.table USING(any_column)

Serikat Ads Data Hub-BigQuery

Agregasi dengan derau memerlukan ID pengguna agar berperforma baik. Data milik pelanggan di BigQuery tidak memiliki ID pengguna, sehingga tidak dapat digabungkan menjadi agregasi derau tanpa bergabung ke tabel Ads Data Hub.

Kueri ini menghasilkan kesalahan validasi:

SELECT COUNT(*) FROM (
  SELECT 1 FROM adh.google_ads_impressions
  UNION ALL
  SELECT 1 FROM bigquery_project.dataset.table
)

Untuk memperbaikinya, Anda harus menggabungkan tabel BigQuery untuk meningkatkan data Ads Data Hub, bukan gabungan, atau memisahkan data untuk menggabungkan setiap sumber secara terpisah.

Perhatikan bahwa Anda dapat menggabungkan beberapa tabel Ads Data Hub dengan data pengguna atau beberapa tabel BigQuery milik pelanggan, tetapi Anda tidak dapat mencampur keduanya.

Ads Data Hub-BigQuery bergabung dengan benar

Outer join dengan data milik pelanggan dapat menyebabkan baris dengan ID pengguna yang tidak ada, sehingga mencegah derau berfungsi dengan baik.

Kedua kueri ini menghasilkan error validasi karena memungkinkan baris yang tidak cocok dengan ID pengguna yang tidak ada di sisi Ads Data Hub:

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)

Perhatikan bahwa gabungan mana pun akan berfungsi jika urutan tabel dibalik.

Ringkasan Baris yang Difilter

Spesifikasi ringkasan baris yang difilter tidak didukung dalam mode derau. Fitur ini sering kali tidak diperlukan dengan derau karena kecepatan pemfilteran yang lebih rendah dan kurangnya pemfilteran dari pemeriksaan perbedaan.

Jika Anda mengamati pemfilteran data yang signifikan dalam hasil derau, tingkatkan data gabungan. Anda dapat melakukan agregasi paralel pada set data lengkap untuk membandingkan perkiraan total, misalnya:

SELECT campaign_name, COUNT(*)
FROM data
GROUP BY 1
UNION ALL
SELECT 'Total', COUNT(*)
FROM data
GROUP BY 1

Perhatikan bahwa jumlah total akan di-noise secara independen dan nilai totalnya mungkin tidak bertambah, tetapi jumlah totalnya sering kali lebih akurat daripada menjumlahkan baris dengan derau.

Tabel yang dibuat dengan mode silang

Tabel yang tidak diekspor di Ads Data Hub hanya dapat digunakan dengan mode privasi yang sama tempat tabel tersebut dibuat. Anda tidak dapat membuat tabel dalam mode agregasi normal dan menggunakannya dalam mode derau, atau sebaliknya (kecuali tabel tersebut diekspor ke BigQuery terlebih dahulu).