최종 사용자의 개인 정보 보호가 Ads Data Hub에서 실행하는 모든 작업의 핵심이며 Google 플랫폼의 기반입니다. 이러한 개인 정보 보호를 유지하고 고객의 규제 준수를 지원하기 위해 Google에서는 사용자가 플랫폼에서 가져오는 데이터에서 개별 사용자1에 대한 데이터의 전송을 방지하도록 디자인된 특정한 검사를 실시하고 제한사항을 적용합니다.
다음은 Ads Data Hub의 개인 정보 보호 기능에 대한 개요로, 자세한 내용은 다음 섹션에서 설명합니다.
- 정적 검사는 쿼리의 문을 검토하여 분명하고 즉각적인 개인 정보 보호 문제를 찾습니다.
- 데이터 액세스 예산에 따라 특정 데이터에 액세스할 수 있는 총횟수가 제한됩니다.
- 집계 검사: 모든 행에 최종 사용자의 개인 정보를 보호하기에 충분한 수의 사용자가 포함되어 있는지 확인합니다.
- 데이터 차이 검사 (또는 '차이 검사')는 결과 집합을 비교하여 여러 사용자 집합의 데이터를 비교하여 개별 사용자에 대한 정보를 수집하지 못하도록 합니다.
- 노이즈 삽입: 데이터 차이 검사의 대안입니다. 노이즈 모드는 마케터를 위한 Ads Data Hub 환경에서만 사용할 수 있습니다. 노이즈 삽입에 관해 자세히 알아보려면 마케터를 위한 Ads Data Hub 사이트에서 이 페이지를 참고하세요.
결과가 개인 정보 보호 검사를 통과하지 못하면 Ads Data Hub에서 행이 필터링되었음을 알리는 개인 정보 보호 메시지를 표시하거나 반환합니다. 단일 행부터 결과 세트 전체에 이르기까지 무엇이든 필터링될 수 있습니다. 보고 총계를 정확하게 유지하려면 필터링된 행 요약을 사용하여 필터링된 행의 데이터를 집계하세요2.
정적 검사
정적 검사는 쿼리의 문을 검토하여 사용자 식별자 또는 사용자 식별자의 함수, 사용자 수준 데이터가 포함된 필드에 허용되지 않는 함수 사용과 같이 분명하고 즉각적인 개인 정보 보호 문제를 찾습니다. 정적 검사로 인한 쿼리 오류를 방지하려면 권장사항을 검토하고 허용되는 함수를 알아보세요.
데이터 액세스 예산
데이터 액세스 예산에 따라 특정 데이터에 액세스할 수 있는 총횟수가 제한됩니다. 예산이 거의 소진된 사용자에게는 DATA_ACCESS_BUDGET_IS_NEARLY_EXHAUSTED
유형의 개인 정보 보호 메시지를 통해 알림이 전송됩니다. 데이터 액세스 예산 진입점을 사용하거나 UI의 예산 알림을 관찰하여 예산을 모니터링할 수 있습니다.
집계 요구사항
Ads Data Hub 개인 정보 보호 검사의 핵심은 사용자 집계 기준점입니다. 대부분 쿼리의 경우 50명 이상의 사용자에 대한 보고 데이터만 수신할 수 있습니다. 하지만 클릭수 및 전환수에만 액세스하는 쿼리는 10명 이상의 사용자에 대해 보고하는 데 사용할 수 있습니다.
- 사용자 ID가 0으로 설정된 이벤트는 이 이벤트를 만든 실제 사용자 수에 관계없이 집계 기준점으로 단일 사용자로 계산됩니다.
- null ID가 있는 사용자는 집계 기준점에 포함되지 않습니다.
권장사항: 생략된 데이터를 보고하도록 필터링된 행 요약을 구성합니다. 이렇게 하면 보고서에서 일관된 기준을 유지하는 데 도움이 됩니다.
다음 예에서 캠페인 125가 포함된 행은 최솟값(사용자 50명) 미만인 48명의 사용자로부터 결과를 집계하므로 최종 결과에서 필터링됩니다.
캠페인 ID | 사용자 | 노출수 |
---|---|---|
123 | 314 | 928 |
124 | 2718 | 5772 |
125 | 48 | 353 |
데이터 차이 검사
데이터 차이 검사를 사용하면 다음과 같은 방식으로 충분히 집계된 여러 결과를 비교하여 사용자를 식별할 수 없습니다.
- 실행 중인 작업의 결과를 이전 결과와 비교합니다.
- 동일한 결과 세트 내의 행을 비교합니다.
데이터 차이 검사 위반은 두 작업 간에 기본 데이터가 변경되면 트리거될 수 있습니다. 작업의 결과를 이전 결과와 비교할 때 Ads Data Hub에서는 개별 사용자의 수준에서 취약점을 찾습니다. 이로 인해 서로 다른 캠페인의 결과 또는 동일한 수의 사용자를 보고하는 결과도 겹치는 사용자가 많은 경우 필터링할 수 있습니다.
반면 두 개의 집계된 결과 집합은 사용자 수는 동일하지만(동일하게 보이지만) 해당 집합에 속한 개별 사용자는 다르기 때문에 개인 정보가 보호되며 필터링되지 않습니다.
새 결과의 취약점을 고려할 때 Ads Data Hub에서는 이전 결과의 데이터를 사용합니다. 즉, 동일한 쿼리를 반복해서 실행하면 새 결과의 취약점을 고려할 때 데이터 차이 검사에서 사용할 데이터가 더 많이 생성됩니다. 또한 기본 데이터가 변경되어 안정적이라고 생각되는 쿼리의 개인 정보 보호 검사 위반으로 이어질 수 있습니다.
작업 수준 결과가 충분히 다르지만 개별 행이 이전 작업의 행과 비슷한 경우 Ads Data Hub에서 비슷한 행을 필터링합니다. 이 예에서는 두 번째 작업의 결과에서 캠페인 123이 포함된 행이 단일 사용자의 이전 결과와 다르기 때문에 필터링됩니다.
|
|
결과 집합에서 모든 행의 사용자 합계가 이전 작업의 합계와 비슷하면 Ads Data Hub에서 결과 집합 전체를 필터링합니다. 이 예에서는 두 번째 작업의 모든 결과가 필터링됩니다.
|
|
필터링된 행 요약
필터링된 행 요약은 개인 정보 보호 검사로 인해 필터링된 데이터를 집계합니다. 필터링된 행의 데이터가 합산되어 포괄 행에 추가됩니다. 필터링된 데이터는 추가로 분석할 수 없지만 결과에서 필터링된 데이터 양에 대한 요약 정보는 확인할 수 있습니다.
명시적인 개인 정보 보호 필터링
쿼리를 분할해야 하지만 집계된 결과를 결합하려는 경우 여러 개의 소규모 쿼리에 개인 정보 보호 검사를 명시적으로 적용한 후 개인 정보를 보호하는 방식으로 이러한 결과를 함께 집계할 수 있습니다.
사용 사례 예:
- EEA 데이터가 포함된 연결된 Google Ads 계정에서 기여 분석 이벤트 유형별로 모든 전환을 찾고 있는 광고주입니다.
- 연결된 Google Ads 계정에서 기여 분석 이벤트 유형별로 모든 전환을 찾고 있는 측정 파트너입니다.
Google Ads 계정의 전환 합계를 확인하려면 OPTIONS(privacy_checked_export=TRUE)
절을 사용하여 쿼리를 다시 작성하여 각 Google 서비스에 개인 정보 보호 검사를 개별적으로 적용하면 됩니다.
이 섹션의 예시 재작성은 다음을 실행합니다.
- 각 Google 서비스에 개별적으로 쿼리하여 각 중간 결과 세트에 개인 정보 보호 검사를 명시적으로 적용합니다.
- YouTube, Gmail, 네트워크 등 각 Google 서비스의 개인 정보 보호 검사 결과에 대해 별도의 임시 테이블을 만듭니다.
- 임시 테이블에서 개인 정보 보호 검사가 완료된 전환 수를 집계하고 합산합니다.
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은 유효하지만 과도한 필터링을 트리거할 수 있는 경우 원치 않는 결과를 피할 수 있도록 쿼리 어드바이저가 쿼리 개발 프로세스 중에 실행 가능한 조치를 표시합니다.
트리거에는 다음과 같은 패턴이 포함됩니다.
- 집계된 서브 쿼리 조인
- 집계되지 않은 데이터를 잠재적으로 다른 사용자와 조인
- 재귀적으로 정의된 임시 테이블
쿼리 어드바이저를 사용하려면 다음 안내를 따르세요.
- UI. 추천은 쿼리 편집기의 쿼리 텍스트 위에 표시됩니다.
- API.
customers.analysisQueries.validate
메서드를 사용합니다.