Почему объект результата решает, что сможет сказать аналитика проверенокритично
Результат — это задание плюс история попыток, а значит, нашу аналитику ограничивает не только то, что сообщает MTA, но и то, что мы сами положили в задание.
Подробно
Большинство систем телеметрии работают только на чтение: получаешь то, что MTA решил рассказать. Здесь половина объекта — это то, что вложил сам отправитель, возвращённое неизменным, поэтому качество аналитики есть решение, принимаемое в момент отправки. Это меняет взгляд сразу на несколько вещей. Группировка по кампании не требует справочника — положи кампанию в задание. Атрибуция на общем узле не требует уговора — назови токен REST. Проверка прогрева не требует догадок — сравни запрошенный адрес с адресом в from. MTA добавляет то, чего мы знать не могли: стадию и исход каждой попытки, коды и собственные слова принимающего, а ещё три уже вынесенных им суждения — был ли отказ окончательным (fatal), касался ли он письма или всего получателя целиком (individual) и не откладывал ли принимающий попросту доставку (greylisted). Эти трое лучше всего, что мы могли бы вывести из кодов, и двоих Хаб пока не читает. Пробел столь же ясен: пока письмо ещё повторяют, не публикуется ничего. Узел с большим отложенным хвостом сообщает почти ничего, и единственный свидетель — журнал отправки.