내 목표에는 어떤 설정이 필요한가요?
방문·SAIRO 문의는 코드 설치 없이, 가입·구매·앱 활동은 서비스 연결 후 시작할 수 있어요.
방문자 늘리기 · SAIRO 문의 받기
고객이 방문할 주소나 받을 문의의 조건만 준비해주세요. SAIRO가 링크 이동을 기록하거나 자체 폼으로 문의를 받아요. 특정 상품·페이지로 바로 보내는 이동도 별도 코드 설치가 필요 없어요.
회원가입 · 구매 · 체험 · 기능 이용
실제 완료 기록을 확인할 수 있도록 개발 담당자가 서비스와 서버에 코드를 연결해야 해요. 먼저 광고를 신청하고, 검토 통과 후 내 캠페인에서 담당자에게 전달할 안내를 복사해주세요.
웹페이지에 코드 하나를 붙이거나 성공 화면을 여는 것만으로 가입·결제가 확인되지는 않아요. 실제 완료 기록이 전달되는지 확인한 후 광고비를 충전해요.
앱·외부 쇼핑몰은 연결 방법부터 확인해요
앱은 앱과 서버 연결이 필요해요. 스토어로 이동한 클릭은 설치 완료를 증명하지 않아요. 현재 SAIRO는 앱 설치 후 추천정보 자동 복원 SDK를 제공하지 않아요. 쇼핑몰·노코드·외부 플랫폼도 성과 기록과 접근 권한을 먼저 확인해야 해요.
개발 담당자가 없어도 방법을 문의할 수 있어요
신청할 때 ‘연결할 수 있는지 모르겠어요’를 선택하거나 서비스 주소와 사용하는 플랫폼을 문의에 남겨주세요. 연결이 어려우면 설치 없는 방문 또는 SAIRO 문의로 시작할 수 있어요.
개발 담당자용 연결 명세 보기
전체 개발 문서 · 캠페인별 정보는 광고주 대시보드에서 확인하세요.
1. 추천 토큰 보관
추천링크가 설정된 광고주 주소로 이동하며 ref 쿼리를 전달합니다. 토큰은 base64url(JSON) + 점 + hex HMAC-SHA256입니다. 캠페인 서명키로 서명을 확인하고 campaign_id·version·clicked_at을 확인하세요. 토큰을 HttpOnly·Secure·SameSite=Lax 쿠키로 보관합니다. 신규 가입 전에만 마지막 클릭을 갱신하고 가입 시 한 번 고정합니다.
2. DB 저장과 전송 대기를 함께 기록
가입 인증과 핵심 행동을 서버에서 확인합니다. 활동 DB 저장과 전환 outbox 생성을 같은 트랜잭션으로 처리하세요. 고객 이름·이메일·게시글 본문은 보내지 마세요. 광고주 범위의 가명 참조를 사용합니다.
3. 서명한 서버 요청 전송
POST https://sairo.pages.dev/api/service/postback
Content-Type: application/json
x-sairo-timestamp: 밀리초 Unix 시각
x-sairo-signature: HMAC_SHA256(secret, timestamp + "." + rawBody)
{
"campaign_id": "운영자가 발급한 캠페인 ID",
"conversion_id": "이벤트의 고유 ID",
"click_id": "추천 토큰의 click_id",
"user_ref": "광고주 범위 가명 사용자 참조 (16~128자)",
"event_type": "캠페인에서 정한 이벤트명",
"registered_at": "ISO 8601 신규 가입 시각",
"occurred_at": "ISO 8601 목표 행동 시각",
"verified": true,
"profile_complete": true,
"evidence_ref": "광고주 DB 이벤트 참조"
}사용자 참조에는 영문·숫자·하이픈·밑줄·콜론만 사용할 수 있습니다. 전환 ID는 점도 허용하며 최대 120자입니다. 서명키를 브라우저에 노출하지 마세요. 금액·승인 상태·홍보자 ID는 보낼 수 없습니다.
4. 응답과 재시도
신규 접수 201, 동일 이벤트 재시도 200, 서명 실패 401, 내용 충돌·중복 사용자·예산 부족 409, 유효하지 않은 클릭·시각·행동 422입니다. 응답의 code로 실패 원인을 구분합니다. 5xx·네트워크 오류는 같은 ID와 본문을 유지하여 재시도하고 요청 서명 시각만 갱신합니다. 영구 오류는 별도 검토 대기로 두고 뒤의 이벤트 전송을 막지 않도록 합니다.
5. 먼저 기록 없이 연결 테스트
서버 모듈의 testConversion(event, {secret})를 사용하면 POST /api/service/postback/test로 보냅니다. 캠페인별 화면의 테스트 예제를 사용하세요. 서명키는 환경변수에만 저장합니다. 응답의 test_only=true, recorded=false, budget_reserved=false를 확인하세요. checks.attribution=false이면 실제 추천 클릭 연결은 아직 확인되지 않은 것입니다. 테스트 요청은 기술적 요청 제한 외에 성과·수익·예산 예약을 만들지 않습니다. 목표 충족·중복/부정·모집 준비 여부는 별도 검수합니다.
6. 실제 캠페인 시작
운영자가 신규 계정의 전체 여정과 광고주 원본 기록을 확인한 뒤 연동 확인을 기록합니다. 선입금 확인과 함께 캠페인을 활성화하면 홍보자가 참여할 수 있습니다. 테스트 이벤트를 실제 수익으로 승인하지 마세요.