Business/2026.04.24/9 min read

AI 피부 관리 앱 안에 광고 수익 모델 만들기

피부 분석, 샵, 콘텐츠 흐름 안에서 광고주와 배너, 노출수, 클릭수를 연결해 Tangly의 첫 수익 기반을 만든 과정입니다.

AdsRevenueMetrics

Code notes

코드에서 확인한 구현 포인트

배포 기준 2026.04.24

관련 파일

apps/web/sql/advertising.sqlapps/web/app/api/admin/advertising/route.tsapps/web/app/api/ads/banners/route.tsapps/web/app/api/ads/track/route.ts

구현 메모

광고 시스템은 advertisers, advertiser_users, ad_banners, ad_impressions, ad_clicks로 책임을 나눴다.

앱은 ads/banners API로 현재 노출 가능한 배너를 읽고, ads/track API로 노출과 클릭을 기록한다.

일별 통계 뷰를 두어 광고주 대시보드에서 노출수와 클릭수를 기간 기준으로 합산할 수 있게 했다.

왜 AI 피부 관리 앱에 광고가 필요한가

Tangly는 피부 분석과 루틴, 샵 탐색을 연결하는 AI 피부 관리 앱이다. 사용자가 자신의 피부 상태를 이해하고 다음 행동을 찾는 과정에는 자연스럽게 브랜드, 제품, 이벤트 정보가 들어올 수 있다.

그래서 주된 수익원은 배너 광고가 될 가능성이 컸다. 다만 광고가 앱 경험을 방해하는 방식이면 안 된다. 피부 고민, 쇼핑 맥락, 운영 콘텐츠와 맞물려 정보처럼 보이는 광고 지면이 필요했다.

그러려면 단순히 이미지를 앱에 띄우는 수준을 넘어, 광고주별로 어떤 배너가 운영되고 얼마나 노출되고 클릭되는지 확인할 수 있어야 했다.

외부 광고 네트워크를 바로 붙이는 방법도 있지만, 초기에는 직접 판매형 광고를 염두에 두고 더 단순하고 투명한 구조를 만들었다.

광고주와 배너를 분리한 이유

광고주는 계약과 관계의 단위이고, 배너는 실제 노출되는 소재의 단위다. 한 광고주가 여러 배너를 가질 수 있고, 같은 광고주라도 위치나 기간이 다른 캠페인을 운영할 수 있다.

이 둘을 분리해두면 나중에 캠페인, 예산, 리포트 같은 개념을 붙일 때도 구조가 자연스럽다.

지표는 처음부터 쌓아야 한다

광고 상품은 성과를 설명할 수 있어야 팔 수 있다. 그래서 노출과 클릭을 처음부터 기록하도록 했다. 당장 복잡한 분석이 없어도, 데이터를 쌓기 시작해야 나중에 리포트를 만들 수 있다.

보안상 세부 수집 방식이나 내부 식별자는 공개하지 않지만, 원칙은 단순하다. 사용자가 광고를 봤는지, 눌렀는지, 어느 지면에서 발생했는지를 안정적으로 남기는 것이다.