Вы хотите убрать дубликаты для события purchase_succeeded. Какой ключ дедупликации наиболее безопасен, чтобы не «съесть» реальные повторные покупки одного пользователя?

AИспользовать dedup_key=user_id совместно с event_name, чтобы оставить у каждого пользователя только одну покупку и убрать повторные.
BИспользовать dedup_key=order_id (или transaction_id), а для повторных доставок одного события дополнительно event_id как защиту.
CИспользовать dedup_key=event_time совместно с user_id, потому что одинаковое время события почти наверняка означает дубликат записи.
DИспользовать dedup_key=amount_minor совместно с user_id, потому что одинаковая сумма платежа с большой вероятностью означает дубликат.
Правильный ответ. Дедупликация должна опираться на идентификатор транзакции (order_id), а не на время или пользователя.

Разбор

Пользователь может совершать несколько покупок, поэтому user_id не подходит как ключ дедупликации. Время устройства может быть неточным, а разные покупки могут происходить близко по времени. Сумма также не уникальна и приведёт к потере валидных событий. order_id или transaction_id отражают уникальность покупки, а event_id помогает удалять повторные доставки одного и того же события в пайплайне сбора логов.

Тренировать продукт в Telegram

Ещё вопросы по теме «Инструментация и качество данных»