제공자가 우리 요청을 받아들였다는 것과 사용자가 알림을 봤다는 것은 다릅니다. 이 차이를 구분하지 않으면 지표가 실제보다 좋게 나오고, 문제를 늦게 알게 됩니다.
세 단계를 구분한다
| 단계 | 뜻 | 우리가 아는 방법 |
|---|---|---|
| 수락 | 제공자가 요청을 받았다 | 호출 응답으로 바로 안다 |
| 도달 | 사용자 기기나 메일함에 닿았다 | 제공자가 나중에 알려주면 안다 |
| 확인 | 사용자가 열었다 | 앱이나 메일이 알려주면 안다 |
수락을 도달로 기록하면 지표가 실제보다 좋게 나옵니다. 앱을 지운 사용자에게 보낸 푸시도 수락은 됩니다.
뒤로 갈수록 알기 어렵습니다. 도달 보고는 채널마다 오는 비율이 다르고 늦게 옵니다. 확인은 사용자가 알림을 눌러야 알 수 있고, 알림을 보기만 하고 앱을 따로 켠 경우는 알 수 없습니다.
그래서 무엇을 보고 판단하나
각 단계를 다르게 씁니다.
| 지표 | 어떻게 보나 |
|---|---|
| 수락 실패율 | 우리 문제다. 즉시 대응한다 |
| 도달률 | 절대값을 믿지 않고 어제와 비교한다 |
| 확인률 | 내용이 좋았는지의 신호로만 본다 |
수락 실패율만 경보로 쓸 수 있습니다. 도달률은 늘 과소 집계되므로 "도달률 70퍼센트 미만이면 경보" 같은 기준은 계속 울리거나 아무 때도 울리지 않습니다. 대신 어제 대비 급락을 봅니다.
반송을 처리해야 한다
보낼 수 없는 주소로 계속 보내면 제공자가 우리를 의심합니다.
| 반송 | 뜻 | 대응 |
|---|---|---|
| 영구 | 없는 주소다 | 다시 보내지 않는다. 표시해 둔다 |
| 일시 | 지금 받을 수 없다 | 잠시 뒤 다시 시도한다 |
영구 반송을 무시하는 것이 가장 흔한 사고입니다. 없는 주소로 계속 보내면 제공자가 우리 발송 전체의 신뢰도를 낮추고, 정상 주소로 가는 알림까지 스팸으로 분류됩니다. 한 사용자의 잘못된 주소가 전체 도달률을 떨어뜨립니다.
푸시도 같습니다. 앱을 지운 기기의 토큰은 제공자가 무효라고 알려줍니다. 그 신호를 받아 토큰을 지워야 합니다. 지우지 않으면 하루 5천만 건 중 상당 부분이 존재하지 않는 기기로 나가는 헛일이 됩니다.
재시도를 어디까지 하나
일시 실패는 다시 시도합니다. 그런데 이 재시도가 앞 절의 중복과 만납니다.
넘겼는지 확실하지 않을 때 다시 시도하면 두 번 보낼 수 있다
그래서 재시도 횟수와 간격을 알림 종류에 따라 다르게 둡니다.
| 알림 | 재시도 | 이유 |
|---|---|---|
| 인증 번호 | 짧게 몇 번만 | 늦게 도착하면 이미 쓸모없다 |
| 결제 알림 | 간격을 늘려 여러 번 | 늦어도 의미가 있다 |
| 마케팅 | 한 번 실패하면 버린다 | 다시 보낼 값이 없다 |
시간이 지나 의미가 없어지는 알림은 재시도가 손해입니다. 인증 번호를 5분 뒤에 배달하면 사용자는 이미 다시 요청했고, 두 번째 번호가 유효한 상태에서 첫 번째가 도착해 혼란만 만듭니다.
재시도를 다 써도 실패한 것은 따로 모아 둡니다. 자동으로 더 시도하지 않고 사람이 보는 자리에 둡니다. 같은 이유로 실패한 것이 쌓이면 그것이 제공자 문제인지 우리 문제인지 판단하는 근거가 됩니다.