Ads Data Hub의 개인 정보 보호 검사

최종 사용자의 개인 정보 보호가 Ads Data Hub에서 실행하는 모든 작업의 핵심이며 Google 플랫폼의 기반입니다. 이러한 개인 정보 보호를 유지하고 고객의 규제 준수를 지원하기 위해 Google에서는 사용자가 플랫폼에서 가져오는 데이터에서 개별 사용자1에 대한 데이터의 전송을 방지하도록 디자인된 특정한 검사를 실시하고 제한사항을 적용합니다.

다음은 Ads Data Hub의 개인 정보 보호 기능에 대한 개요로, 자세한 내용은 다음 섹션에서 설명합니다.

  • 정적 검사는 쿼리의 문을 검토하여 분명하고 즉각적인 개인 정보 보호 문제를 찾습니다.
  • 데이터 액세스 예산에 따라 특정 데이터에 액세스할 수 있는 총횟수가 제한됩니다.
  • 집계 검사: 모든 행에 최종 사용자의 개인 정보를 보호하기에 충분한 수의 사용자가 포함되어 있는지 확인합니다.
  • 데이터 차이 검사 (또는 '차이 검사')는 결과 집합을 비교하여 여러 사용자 집합의 데이터를 비교하여 개별 사용자에 대한 정보를 수집하지 못하도록 합니다.
  • 노이즈 삽입: 데이터 차이 검사의 대안입니다. 쿼리의 집계 SELECT 절에 무작위 노이즈를 추가하면 합리적인 수준에서 정확한 결과를 제공하면서 사용자의 개인 정보를 보호하므로 데이터 차이 검사를 실행할 필요가 없으며 출력을 위해 필요한 집계 기준점이 낮아집니다.

결과가 개인 정보 보호 검사를 통과하지 못하면 Ads Data Hub에서 행이 필터링되었음을 알리는 개인 정보 보호 메시지를 표시하거나 반환합니다. 단일 행부터 결과 세트 전체에 이르기까지 무엇이든 필터링될 수 있습니다. 보고 총계를 정확하게 유지하려면 필터링된 행 요약을 사용하여 필터링된 행의 데이터를 집계하세요2.

정적 검사

정적 검사는 쿼리의 문을 검토하여 사용자 식별자 또는 사용자 식별자의 함수, 사용자 수준 데이터가 포함된 필드에 허용되지 않는 함수 사용과 같이 분명하고 즉각적인 개인 정보 보호 문제를 찾습니다. 정적 검사로 인한 쿼리 오류를 방지하려면 권장사항을 검토하고 허용되는 함수를 알아보세요.

데이터 액세스 예산

데이터 액세스 예산에 따라 특정 데이터에 액세스할 수 있는 총횟수가 제한됩니다. 예산이 거의 소진된 사용자에게는 DATA_ACCESS_BUDGET_IS_NEARLY_EXHAUSTED 유형의 개인 정보 보호 메시지를 통해 알림이 전송됩니다. 데이터 액세스 예산 진입점을 사용하거나 UI의 예산 알림을 관찰하여 예산을 모니터링할 수 있습니다.

집계 요구사항

Ads Data Hub 개인 정보 보호 검사의 핵심은 사용자 집계 기준점입니다. 대부분 쿼리의 경우 50명 이상의 사용자에 대한 보고 데이터만 수신할 수 있습니다. 하지만 클릭수 및 전환수에만 액세스하는 쿼리는 10명 이상의 사용자에 대해 보고하는 데 사용할 수 있습니다.

권장사항: 생략된 데이터를 보고하도록 필터링된 행 요약을 구성합니다. 이렇게 하면 보고서에서 일관된 기준을 유지하는 데 도움이 됩니다.

다음 예에서 캠페인 125가 포함된 행은 최솟값(사용자 50명) 미만인 48명의 사용자로부터 결과를 집계하므로 최종 결과에서 필터링됩니다.

캠페인 ID 사용자 노출수
123 314 928
124 2718 5772
125 48 353

개인 정보 보호 모드

Ads Data Hub는 차등 검사노이즈 주입이라는 두 가지 개인 정보 보호 모드를 제공합니다. 다음 섹션에서는 이러한 모드를 설명하고 비교합니다.

차이 검사 사용

데이터 차이 검사를 사용하면 다음과 같은 방식으로 충분히 집계된 여러 결과를 비교하여 사용자를 식별할 수 없습니다.

  • 실행 중인 작업의 결과를 이전 결과와 비교합니다.
  • 동일한 결과 세트 내의 행을 비교합니다.

데이터 차이 검사 위반은 두 작업 간에 기본 데이터가 변경되면 트리거될 수 있습니다. 작업의 결과를 이전 결과와 비교할 때 Ads Data Hub에서는 개별 사용자의 수준에서 취약점을 찾습니다. 이로 인해 서로 다른 캠페인의 결과 또는 동일한 수의 사용자를 보고하는 결과도 겹치는 사용자가 많은 경우 필터링할 수 있습니다.

반면 두 개의 집계된 결과 집합은 사용자 수는 동일하지만(동일하게 보이지만) 해당 집합에 속한 개별 사용자는 다르기 때문에 개인 정보가 보호되며 필터링되지 않습니다.

새 결과의 취약점을 고려할 때 Ads Data Hub에서는 이전 결과의 데이터를 사용합니다. 즉, 동일한 쿼리를 반복해서 실행하면 새 결과의 취약점을 고려할 때 데이터 차이 검사에서 사용할 데이터가 더 많이 생성됩니다. 또한 기본 데이터가 변경되어 안정적이라고 생각되는 쿼리의 개인 정보 보호 검사 위반으로 이어질 수 있습니다.

작업 수준 결과가 충분히 다르지만 개별 행이 이전 작업의 행과 비슷한 경우 Ads Data Hub에서 비슷한 행을 필터링합니다. 이 예에서는 두 번째 작업의 결과에서 캠페인 123이 포함된 행이 단일 사용자의 이전 결과와 다르기 때문에 필터링됩니다.

작업 1
캠페인 ID 사용자
123 400
124 569
작업 2
캠페인 ID 사용자
123 401
224 1325

결과 집합에서 모든 행의 사용자 합계가 이전 작업의 합계와 비슷하면 Ads Data Hub에서 결과 집합 전체를 필터링합니다. 이 예에서는 두 번째 작업의 모든 결과가 필터링됩니다.

작업 1
캠페인 ID 사용자
123 400
124 1367
작업 2
캠페인 ID 사용자
123 402
124 1367

노이즈 삽입 사용

노이즈 삽입은 데이터베이스를 쿼리할 때 사용자의 개인 정보를 보호하는 기술로, 쿼리의 집계되는 SELECT 절에 임의의 노이즈를 추가합니다. 이 노이즈는 합리적인 수준에서 정확한 결과를 제공하면서 사용자의 개인 정보를 보호하므로 데이터 차이 검사를 실행할 필요가 없으며 출력을 위해 필요한 집계 기준점이 낮아집니다. 대부분의 기존 쿼리는 노이즈 모드에서 실행될 수 있으나 일부 제한사항이 있습니다. 노이즈 모드 및 노이즈 삽입이 개인 정보 보호 요구사항에 미치는 영향에 관한 자세한 내용은 노이즈 삽입을 참고하세요.

데이터 차이 검사와 노이즈 삽입 비교

실제 데이터
캠페인 ID 노출수
101 35
102 63
201 142
202 21
301 56
302 99
데이터 차이 검사를 사용한 결과
캠페인 ID 노출수
101 35
102 63
201 142
202 21
301 56
302 99
노이즈 삽입을 사용한 결과
캠페인 ID 노출수
101 37.8373
102 60.9104
201 182.0955
202 26.2332
301 58.0871
302 97.5018
노이즈 모드의 캠페인 101 예
캠페인 ID 실제 노출수 노이즈 추가됨 반환된 노출수 (ANON_COUNT)
101 35 2.8373 37.8373

필터링된 행 요약

필터링된 행 요약은 개인 정보 보호 검사로 인해 필터링된 데이터를 집계합니다. 필터링된 행의 데이터가 합산되어 포괄 행에 추가됩니다. 필터링된 데이터는 추가로 분석할 수 없지만 결과에서 필터링된 데이터 양에 대한 요약 정보는 확인할 수 있습니다.

명시적인 개인 정보 보호 필터링

쿼리를 분할해야 하지만 집계된 결과를 결합하려는 경우 여러 개의 소규모 쿼리에 개인 정보 보호 검사를 명시적으로 적용한 후 개인 정보를 보호하는 방식으로 이러한 결과를 함께 집계할 수 있습니다.

사용 사례 예:

  • EEA 데이터가 포함된 연결된 Google Ads 계정에서 기여 분석 이벤트 유형별로 모든 전환을 찾고 있는 광고주입니다.
  • 연결된 Google Ads 계정에서 기여 분석 이벤트 유형별로 모든 전환을 찾고 있는 측정 파트너입니다.

Google Ads 계정의 전환 합계를 확인하려면 OPTIONS(privacy_checked_export=TRUE) 절을 사용하여 쿼리를 다시 작성하여 각 Google 서비스에 개인 정보 보호 검사를 개별적으로 적용하면 됩니다.

이 섹션의 예시 재작성은 다음을 실행합니다.

  1. 각 Google 서비스에 개별적으로 쿼리하여 각 중간 결과 세트에 개인 정보 보호 검사를 명시적으로 적용합니다.
  2. YouTube, Gmail, 네트워크 등 각 Google 서비스의 개인 정보 보호 검사 결과에 대해 별도의 임시 테이블을 만듭니다.
  3. 임시 테이블에서 개인 정보 보호 검사가 완료된 전환 수를 집계하고 합산합니다.
CREATE TEMP TABLE youtube_agg OPTIONS(privacy_checked_export=TRUE) AS
SELECT
 impression_data.campaign_id,
 attribution_event_type,
 COUNT(1) AS num_convs
FROM adh.google_ads_conversions_policy_isolated_youtube
WHERE impression_data.campaign_id IN UNNEST(@campaign_ids)
 AND conversion_type IN UNNEST(@conversion_type_list)
GROUP BY campaign_id, attribution_event_type;

CREATE TEMP TABLE network_agg OPTIONS(privacy_checked_export=TRUE) AS
SELECT
 impression_data.campaign_id,
 attribution_event_type,
 COUNT(1) AS num_convs
FROM adh.google_ads_conversions_policy_isolated_network
WHERE impression_data.campaign_id IN UNNEST(@campaign_ids)
 AND conversion_type IN UNNEST(@conversion_type_list)
GROUP BY campaign_id, attribution_event_type;

CREATE TEMP TABLE gmail_agg OPTIONS(privacy_checked_export=TRUE) AS
SELECT
 impression_data.campaign_id,
 attribution_event_type,
 COUNT(1) AS num_convs
FROM adh.google_ads_conversions_policy_isolated_gmail
WHERE impression_data.campaign_id IN UNNEST(@campaign_ids)
 AND conversion_type IN UNNEST(@conversion_type_list)
GROUP BY campaign_id, attribution_event_type;

SELECT
 campaign_id,
 attribution_event_type,
 SUM(num_convs) AS num_convs
FROM (
 SELECT * FROM youtube_agg
 UNION ALL
 SELECT * FROM network_agg
 UNION ALL
 SELECT * FROM gmail_agg
)
GROUP BY campaign_id, attribution_event_type

이 쿼리는 JOIN를 사용하여 테이블 간에 데이터를 직접 결합하지 않고 대신 먼저 각 테이블에 대한 쿼리를 실행하고 각 중간 테이블에 개인 정보 보호 검사를 적용한 다음 UNION를 사용하여 개인 정보 보호 검사가 완료된 값의 합계를 구합니다.

쿼리 어드바이저

SQL은 유효하지만 과도한 필터링을 트리거할 수 있는 경우 원치 않는 결과를 피할 수 있도록 쿼리 어드바이저가 쿼리 개발 프로세스 중에 실행 가능한 조치를 표시합니다.

트리거에는 다음과 같은 패턴이 포함됩니다.

쿼리 어드바이저를 사용하려면 다음 안내를 따르세요.


  1. 패널 멤버의 경우와 같이 공유에 동의한 데이터 제외 

  2. 필터링된 행 요약의 사용자가 집계 요구사항을 충족하지 않는 경우와 같이 개인 정보 보호 제한으로 인해 금지되지 않는 경우