Конфиденциальность данных конечных пользователей лежит в основе всего, что делает Ads Data Hub; это фундамент, на котором построена наша платформа. Чтобы обеспечить конфиденциальность и помочь нашим клиентам соблюдать нормативные требования, мы применяем определённые проверки и ограничения, призванные предотвратить передачу данных об отдельных пользователях1 в данных, которые вы получаете через платформу.
Ниже представлен обзор функций конфиденциальности Ads Data Hub, более подробная информация представлена в следующих разделах:
- Статические проверки проверяют утверждения в ваших запросах на предмет очевидных и непосредственных проблем с конфиденциальностью.
- Бюджеты доступа к данным ограничивают общее количество раз, когда вы можете получить доступ к определенному фрагменту данных.
- Проверки агрегации гарантируют, что каждая строка содержит достаточно большое количество пользователей для защиты конфиденциальности конечного пользователя.
- Проверки различий (или «diff-проверки») сравнивают наборы результатов, чтобы предотвратить сбор информации об отдельных пользователях путем сравнения данных из нескольких наборов пользователей.
- Вставка шума — альтернатива проверке различий. Добавление случайного шума в агрегирующий оператор
SELECTзапроса защищает конфиденциальность пользователя, обеспечивая при этом достаточно точные результаты, устраняя необходимость в проверке различий и снижая требуемый порог агрегации для выходных данных.
Если результат не проходит проверку конфиденциальности, Ads Data Hub отображает или возвращает сообщение о том, что строка была отфильтрована. Это может быть как отдельная строка, так и целый набор результатов. Чтобы обеспечить точность итоговых данных в отчёте, используйте сводку по отфильтрованным строкам для подсчёта данных из отфильтрованных строк 2 .
Статические проверки
Статические проверки проверяют операторы в ваших запросах на наличие очевидных и непосредственных проблем с конфиденциальностью, таких как экспорт идентификаторов пользователей, использование любых функций идентификаторов пользователей или использование запрещённых функций в полях, содержащих данные на уровне пользователя. Чтобы избежать ошибок запросов, возникающих при статических проверках, ознакомьтесь с рекомендациями и узнайте, какие функции разрешены .
Бюджет доступа к данным
Ваш бюджет доступа к данным ограничивает общее количество раз, которое вы можете получить доступ к определённому фрагменту данных. Пользователи, у которых бюджет подходит к концу, получат уведомление о конфиденциальности с типом DATA_ACCESS_BUDGET_IS_NEARLY_EXHAUSTED . Вы можете контролировать бюджет, используя точку ввода бюджета доступа к данным или просматривая уведомления о бюджете в пользовательском интерфейсе.
Требования к агрегации
В основе проверок конфиденциальности Ads Data Hub лежит порог агрегации пользователей. Для большинства запросов можно получить отчётные данные только по 50 или более пользователям. Однако запросы, которые получают доступ только к кликам и конверсиям, можно использовать для отчётности по 10 или более пользователям.
- События с нулевыми идентификаторами пользователей учитываются как один пользователь при расчете порога агрегации, независимо от того, сколько фактических пользователей создали события.
- Пользователи с нулевыми идентификаторами не учитываются при расчете порога агрегации.
- Узнайте, как режим шума влияет на требования к агрегации .
Рекомендация: настройте отфильтрованную сводку по строкам , чтобы отобразить пропущенные данные. Это поможет поддерживать единообразие исходных данных в отчётах.
В следующем примере строка, содержащая кампанию 125, будет отфильтрована из окончательных результатов, поскольку она объединяет результаты от 48 пользователей, что ниже минимума в 50 пользователей.
| Идентификатор кампании | Пользователи | Впечатления |
|---|---|---|
| 123 | 314 | 928 |
| 124 | 2718 | 5772 |
| 125 | 48 | 353 |
Режимы конфиденциальности
Ads Data Hub предлагает два режима конфиденциальности : проверку различий и добавление шума . В следующих разделах описываются и сравниваются эти режимы.
Использовать проверки различий
Проверки различий помогают гарантировать, что пользователи не смогут быть идентифицированы путем сравнения нескольких достаточно агрегированных результатов следующими способами:
- Они сравнивают результаты текущей работы с предыдущими результатами.
- Они сравнивают строки в одном и том же наборе результатов.
Нарушения проверки различий могут быть вызваны изменениями в базовых данных между двумя заданиями. При сравнении результатов задания с предыдущими результатами Ads Data Hub ищет уязвимости на уровне отдельных пользователей. Благодаря этому даже результаты из разных кампаний или результаты с одинаковым количеством пользователей могут быть отфильтрованы, если в них много пересекающихся пользователей.
С другой стороны, два агрегированных набора результатов могут иметь одинаковое количество пользователей (кажущихся идентичными), но не содержать отдельных пользователей и, следовательно, быть конфиденциальными, в этом случае они не будут фильтроваться.
Ads Data Hub использует данные из ваших исторических результатов при оценке уязвимости нового результата. Это означает, что многократное выполнение одного и того же запроса создаёт больше данных для проверки различий, которые можно использовать при оценке уязвимости нового результата. Кроме того, базовые данные могут изменяться, что приводит к нарушениям проверки конфиденциальности в запросах, которые считаются стабильными.
Если результаты на уровне задания различаются достаточно существенно, но отдельная строка похожа на строку в предыдущем задании, Ads Data Hub отфильтрует похожую строку. В этом примере будет отфильтрована строка, содержащая кампанию 123 в результатах второго задания, поскольку она отличается от предыдущего результата всего на одного пользователя.
|
| ||||||||||||||||
Если сумма пользователей во всех строках набора результатов совпадает с суммой из предыдущего задания, Ads Data Hub отфильтрует весь набор результатов. В этом примере будут отфильтрованы все результаты из второго задания.
|
| ||||||||||||||||
Использовать инъекцию шума
Внесение шума — это метод защиты конфиденциальности пользователей при запросах к базе данных. Он работает путём добавления случайного шума к агрегирующему предложению SELECT запроса. Этот шум защищает конфиденциальность пользователей, обеспечивая при этом достаточно точные результаты, устраняя необходимость в проверке различий и снижая требуемый порог агрегации для выходных данных. Большинство существующих запросов можно выполнять в режиме шума, но с некоторыми ограничениями. Чтобы узнать больше о режиме шума и о том, как внесение шума влияет на требования к конфиденциальности, см. статью «Внесение шума» .
Сравните проверки различий с введением шума
|
| ||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||
Сводка отфильтрованных строк
Сводки по отфильтрованным строкам содержат данные, отфильтрованные в результате проверок конфиденциальности. Данные из отфильтрованных строк суммируются и добавляются в строку сбора данных. Хотя отфильтрованные данные не подлежат дальнейшему анализу, они дают представление о том, какой объём данных был отфильтрован из результатов.
Явная фильтрация конфиденциальности
В случаях, когда вам необходимо разбить запрос, но вы хотите объединить агрегированные результаты, вы можете явно применить проверки конфиденциальности к нескольким небольшим запросам, а затем объединить эти результаты вместе безопасным для конфиденциальности способом.
Примеры использования:
- Вы — рекламодатель, который ищет все конверсии по типу события атрибуции в своем связанном аккаунте Google Ads, включая данные ЕЭЗ.
- Вы являетесь партнером по измерению, который ищет все конверсии по типу события атрибуции в вашем связанном аккаунте Google Ads.
Чтобы получить сумму конверсий для вашего аккаунта Google Ads, вы можете переписать запрос, используя предложение OPTIONS(privacy_checked_export=TRUE) , чтобы применить проверки конфиденциальности к каждой службе Google по отдельности.
Пример переписывания в этом разделе делает следующее:
- Он запрашивает каждую службу Google по отдельности, явно применяя проверки конфиденциальности к каждому набору промежуточных результатов.
- Он создает отдельную временную таблицу для проверенных на конфиденциальность результатов каждого сервиса Google: YouTube, Gmail и Network.
- Он объединяет и суммирует проверенные на конфиденциальность счетчики конверсий из временных таблиц.
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-запрос действителен, но может вызвать чрезмерную фильтрацию, помощник по запросам выдаст полезные рекомендации в процессе разработки запроса, которые помогут вам избежать нежелательных результатов.
Триггеры включают в себя следующие шаблоны:
- Объединение агрегированных подзапросов
- Объединение неагрегированных данных с потенциально разными пользователями
- Рекурсивно определенные временные таблицы
Чтобы воспользоваться консультантом по запросам:
- Пользовательский интерфейс . Рекомендации будут отображаться в редакторе запросов над текстом запроса.
- API . Используйте метод
customers.analysisQueries.validate.
За исключением данных, на предоставление которых они дали согласие, например, в случае с участниками дискуссии. ↩
Если только это не противоречит ограничениям конфиденциальности, например, если пользователи в отфильтрованной строке сводки не соответствуют требованиям агрегации. ↩