반응형


안녕하세요. 서비스 마케팅 효율화 작업을 진행하고 있는 개발자입니다.

최근 제휴 마케팅을 진행하면서 '링크프라이스(Linkprice)' 플랫폼을 도입하게 되었습니다. 하지만 매번 수동으로 딥링크(Deeplink)를 생성하고 검증하는 과정에서 단순 반복 작업으로 인한 리소스 낭비가 심했고, 수작업 특성상 파라미터가 누락되는 휴먼 에러가 종종 발생했습니다.

이를 해결하기 위해 링크프라이스에서 제공하는 규칙을 기반으로, 서비스 내에서 딥링크를 자동으로 생성하고 관리할 수 있는 모듈을 개발했습니다. 그 과정을 가볍게 공유해 보려고 합니다.

1. 왜 딥링크 자동화가 필요했을까?
일반적인 범용 링크는 사용자를 단순히 메인 페이지로 이동시킵니다. 하지만 마케팅 성과를 극대화하려면 사용자가 광고를 클릭했을 때 '특정 상품 상세 페이지'나 '이벤트 페이지'로 바로 이동하는 딥링크가 필수적입니다.

링크프라이스에서 딥링크를 정상적으로 추적(Tracking)하려면 다음과 같은 고유 파라미터들이 정확하게 조합되어야 합니다.

A100 (어필리에이트 ID): 성과를 인정받을 파트너의 식별자입니다.

B100 (머천트 ID): 광고주(우리 서비스)의 고유 식별자입니다.

Target URL: 사용자가 최종적으로 도달해야 하는 목적지 주소입니다.

이를 매번 마케터가 엑셀이나 메모장에서 조합하다 보니 주소가 깨지거나 추적 코드가 유실되는 문제가 있었습니다. 시스템적으로 정해진 규칙에 따라 URL을 생성하는 로직이 시급했습니다.

2. 핵심 구현 단계 및 코드 구조
작업은 크게 세 단계로 나누어 진행했습니다.

① 기본 베이스 URL 및 파라미터 정의
먼저 링크프라이스에서 지정한 게이트웨이 주소와 필수 파라미터들을 환경 변수(ENV)로 안전하게 관리할 수 있도록 구조화했습니다.

JavaScript
// 환경 변수 및 상수 정의
const LINKPRICE_BASE_URL = "https://p.linkprice.com/k/";
const MERCHANT_ID = process.env.LINKPRICE_MERCHANT_ID; // 머천트 ID
② 딥링크 생성 코어 로직 작성
사용자가 이동하고자 하는 최종 목적지(targetUrl)를 인코딩하고, 필수 식별자들을 조합하여 링크프라이스 포맷에 맞게 빌드하는 함수를 작성했습니다. URLSearchParams를 활용해 안정성을 높였습니다.

JavaScript
/**
 * 링크프라이스 딥링크를 생성하는 함수
 * @param {string} targetUrl - 이동하고자 하는 최종 서비스 내 URL
 * @param {string} affiliateId - 어필리에이트 ID (A100)
 * @returns {string} 생성된 딥링크 URL
 */
function generateLinkpriceDeeplink(targetUrl, affiliateId) {
  if (!targetUrl || !affiliateId) {
    throw new Error("필수 파라미터가 누락되었습니다.");
  }

  // URL 인코딩 처리로 깨짐 방지
  const encodedTargetUrl = encodeURIComponent(targetUrl);
  
  // 링크프라이스 표준 포맷에 맞춘 URL 구성
  // 포맷 예시: https://p.linkprice.com/k/머천트ID?a100=어필리에이트ID&url=인코딩된타겟URL
  const deeplink = `${LINKPRICE_BASE_URL}${MERCHANT_ID}?a100=${affiliateId}&url=${encodedTargetUrl}`;
  
  return deeplink;
}
③ 유효성 검증 및 예외 처리
인코딩 과정에서 http 또는 https가 누락되거나, 비정상적인 문자열이 들어올 경우를 대비해 정규식을 통한 밸리데이션 체크 단계를 추가하여 트래킹 누수를 방지했습니다.

3. 작업 후 느낀 점과 개선 효과
이번 자동화 모듈 도입으로 얻은 가장 큰 수확은 데이터의 신뢰성 확보입니다.

휴먼 에러 zero: 파라미터 누락으로 인해 마케팅 성과 추적이 누적되지 않던 문제가 완벽히 해결되었습니다.

업무 생산성 향상: 기존에 마케팅 팀에서 링크 생성에 소비하던 시간이 사라져, 온전히 기획과 운영에만 집중할 수 있게 되었습니다.

주의할 점은, 제휴사별로 URL 인코딩 방식(encodeURIComponent vs encodeURI)에 따라 간혹 특정 특수문자가 깨지는 현상이 있을 수 있으니, 연동 전 스테이징 환경에서 트래킹 로그가 정상적으로 찍히는지 반드시 전수 테스트를 거쳐야 합니다.


반응형

+ Recent posts