추천 배너에서 약속한 보너스가 다음 화면에서 사라지지 않게
추천을 눌러도 일반 참여로 이동하면 도착 화면은 보너스를 알 수 없습니다. 추천 경유 참여 ID를 받은 뒤 이동하고 서버의 혜택·만료를 각 화면에서 사용했습니다.
한 캠페인을 마친 사용자에게 다음 참여를 추천하며 기간 한정 보너스를 안내했습니다. 그런데 추천 배너를 눌러도 일반 캠페인 주소로 이동하면 도착 화면은 이 사용자가 보너스를 약속받은 참여를 시작했다는 사실을 알 수 없습니다. 제가 맡은 핵심은 배너를 꾸미는 것이 아니라, 그 약속을 실제 참여 화면의 정보와 연결하는 일이었습니다.
추천 대상·캠페인 선정·보너스 지급은 서버가 판단했습니다. 저는 추천 API를 배너·카드에 연결하고, 선택 후 참여 진입과 미션·탐색 화면의 혜택 표시를 구현했습니다.
어느 참여에서 시작된 혜택인지 연결했다
추천 결과가 하나면 배너로, 여러 개면 선택 카드로 보여 줬습니다. 결과가 없는 조건도 처리했습니다. 하지만 어느 표현을 누르든 일반 캠페인 주소로만 이동하면 도착 화면은 추천 여부를 모릅니다.
그래서 추천 경유 문맥을 서버에 보내 새 참여 식별자를 받은 다음 이동했습니다. 일반 진입은 기존 동작을 유지했습니다. 도착 화면은 배너의 임시 값을 믿지 않고, 그 참여의 서버 응답에서 보너스와 만료 시각을 읽었습니다. FE가 지급 자격을 다시 계산하면 서버가 인정한 혜택과 화면의 설명이 달라질 수 있기 때문입니다. 리뷰에서 같은 추천 문맥을 중복 조회하는 문제가 지적됐을 때는 이미 읽은 문맥을 전달하는 좁은 수정으로 해결했습니다.
추천 선택 → 추천 경유 참여 시작 → 참여 식별자 확인
→ 미션·탐색 화면에 같은 혜택 표시
이 식별자가 배너의 선택과 실제 참여, 이후 화면을 묶는 기준이 됐습니다.
배너를 닫는 시간과 혜택이 끝나는 시간을 분리했다
여기에는 두 시계가 있었습니다. 배너를 닫은 뒤 다시 노출하지 않을 시간과, 이미 시작한 참여의 보너스가 끝나는 시간입니다. 닫힘은 참여 식별자에 연결해 하루 동안 재노출을 제한했습니다. 혜택의 남은 시간은 서버의 만료 시각을 기준으로 표시하고 만료 뒤에는 참여를 다시 읽었습니다.
배너를 닫거나 다시 열어도 보너스 지급 기간은 바뀌지 않습니다. 표시 편의를 위한 시간과 혜택 자격의 시간을 분리해야 화면 규칙이 서버 정책을 덮지 않습니다.
추천·참여 중 목록·개별 미션에서 기본 리워드와 보너스 적용 값을 구별했습니다. 두 값이 같으면 불필요한 취소선은 표시하지 않았습니다. 한 화면은 추가 혜택을, 다른 화면은 기본값만 보여 주면 같은 참여를 서로 다르게 설명하게 됩니다.
확인된 결과와 제 역할
추천 경유 참여와 보너스·만료 표시를 기존 목록·미션까지 연결했습니다. 별도의 실험 조건 수정에서는 진입 경로뿐 아니라 도착 화면의 추천 조회와 노출도 같은 대상 조건을 따르도록 고쳤습니다. 진입점만 제한하고 도착 화면은 그대로 두면 실험 대상 밖의 사용자에게도 추천 정보가 노출될 수 있습니다. 제가 확인한 경계는 링크를 눌렀을 때 어디로 가는지만이 아니라, 이동 뒤 어떤 데이터를 읽고 보여 주는가였습니다.
제품팀은 이후 실험에서 설치당 광고주 과금 이벤트 평균과 구매 건수 개선, 추가 리워드 비용을 포함한 수익률 유지를 보고했습니다. 추천 전략·서버 정책·디자인·FE가 함께 만든 팀의 결과이고, 제 FE 구현만의 인과 효과는 분리 측정되지 않았습니다. 제가 검증해 전달한 범위는 추천 선택이 서버가 인정한 참여로 이어지고, 이동 후 화면들이 그 참여의 혜택·만료를 같은 기준으로 표시하는 동작입니다.