Momento 엔터프라이즈 사용자 가이드 (User Guide & Developer Manual)


목차

  1. 플랫폼 아키텍처 개요
  2. JavaScript SDK 연동 및 설정 가이드 — 설치, 자동 감지 신호와 사이트 검색, CSP 허용, 동의 모드, 식별, 커스텀 이벤트, SPA, 오프라인 큐
  3. 고급 분석 기능 사용법
    • 무엇을 볼지: 3.1 첫 화면, 3.2 방문자 인사이트, 3.3 방문자 추적, 3.4 이상 감지, 3.5 전환 기여도
    • 누가 다른지: 3.6 행동 기반 Segment, 3.7 Funnel 비교, 3.8 Retention 비교, 3.9 경험 비교
    • 직접 파보기: 3.10 쿼리 빌더 ~ 3.19 Experiment와 Goal
    • 이어서: 3.20 정기 배달 연결, 3.21 분석 쿼리 제한
  4. BI 연동 & 데이터 내보내기
  5. Query Mode와 비용 보호
  6. 개인정보 요청 Workflow
  7. Console 탐색과 표 활용

1. 플랫폼 아키텍처 개요

Momento는 사내 애플리케이션 및 인트라넷 환경에서 발생하는 모든 행동 이벤트를 외부 SaaS로 전송하지 않고 사내 DB에 원시 이벤트(Raw Event) 수준으로 직접 저장·분석하는 온프레미스 플랫폼입니다.


2. JavaScript SDK 연동 및 설정 가이드

2.1 스크립트 비동기 설치

웹 애플리케이션의 <head> 영역에 아래 스크립트를 비동기로 삽입합니다.

<!-- Momento JavaScript Tracker SDK -->
<script 
  async 
  src="https://momento.internal/tracker.js" 
  data-site-id="SITE_CORPORATE_001"
  data-environment="prd"
  data-contract-version="1"
  data-mode="full"
  data-debug="false"
></script>
속성 (Attribute) 타입 필수 여부 설명
data-site-id String 필수 관리자 콘솔에서 생성한 사이트 고유 식별 키
data-environment String 선택 dev, stg, prd 등 관리자에게 등록한 환경. 기본 prd
data-contract-version Number 선택 전송 Event Contract version. 기본 1
data-mode String 선택 full, consent-required, cookieless, disabled 중 선택
data-debug Boolean 선택 true이면 브라우저 콘솔에 SDK 진단 로그 출력
data-collect-element-text Boolean 선택 버튼 문구 수집. 개인정보 최소화를 위해 기본값은 false
data-auto-rum Boolean 선택 Core Web Vitals와 Resource Error 자동 수집. 기본 true
data-session-timeout Number 선택 Session 구분 기준(분). 관리 콘솔의 사이트 Session Timeout 설정이 이 속성으로 전달됩니다. 기본 30
data-frustration-signals Boolean 선택 Rage Click, Dead Click, Rapid Back, Form Retry, Error After Click, Slow Interaction 자동 감지. 기본 true
data-search-tracking Boolean 선택 결과 페이지의 질의 문자열로 사이트 검색 자동 인식. 기본 true
data-collect-search-terms Boolean 선택 검색어 원문 수집. 개인정보 최소화를 위해 기본값은 false
data-search-params String 선택 검색어 질의 문자열 이름 추가 지정(쉼표 구분). 기본값은 q,query,search,searchword,keyword,kwd,term,s
data-release-version String 선택 Release Impact 비교용 애플리케이션 릴리스
data-git-sha String 선택 배포 소스 revision
data-endpoint String 선택 Collector 주소 override. 절대 URL 또는 같은 Origin의 프록시 경로(/momento)

Collector endpoint는 tracker.js를 제공한 Origin의 /collect/v1/events로 자동 설정됩니다. Page View, SPA History 변경, 클릭, 스크롤, Form, Download, Outbound Link, Error, Heartbeat, LCP/INP/CLS/FCP/TTFB와 Resource Error는 기본 자동 수집됩니다.

2.1.1 자동 감지되는 Frustration 신호와 사이트 검색

별도 계측 없이 다음을 감지합니다. 감지 기준은 화면의 신호 설명과 동일합니다.

Event 감지 기준
rage_click 같은 요소를 1초 안에 3번 이상 클릭. 실제 클릭 수를 clicks로 전달
dead_click 클릭 가능해 보이는 요소를 눌렀지만 1.2초 동안 DOM 변화, 이동, 스크롤, 포커스 이동, 텍스트 선택이 모두 없음
rapid_back 도착 후 3초 안에 뒤로 이동. 머문 시간을 dwell_ms로 전달
form_retry 같은 Form 재제출(reason=resubmit) 또는 입력 검증 실패(reason=validation)
repeated_search 같은 검색어를 2분 안에 재검색
error_after_click 클릭 후 2초 안에 오류 발생. 원인 요소를 함께 전달
slow_interaction 입력 응답이 500ms 초과(INP poor 구간)
search 결과 페이지 질의 문자열에서 검색 인식. query_length, query_words, result_count 전달
search_click 검색 결과 링크 클릭. 순위를 position으로 전달
search_refine 검색어를 좁히거나 넓혀 재검색. 방향을 direction으로 전달
collection_dropped 오프라인 큐가 저장 한도(200건)를 넘겨 오래된 이벤트를 버렸습니다. 잃어버린 건수를 events_dropped로 전달

collection_dropped가 보이면 해당 구간의 수치는 실제보다 낮습니다. 이전에는 같은 상황에서 아무 흔적도 남지 않아, 숫자가 낮은 이유를 알 수 없었습니다.

브라우저가 오프라인일 때 페이지를 벗어나면 sendBeacon은 페이로드를 접수하지만 전달을 보장하지 않으므로, 그 배치는 전송하지 않고 큐에 남겨 다음 페이지 로드에서 보냅니다. 온라인 상태에서 브라우저가 강제 종료된 경우의 손실은 페이지가 관측할 수 없어 막지 못합니다.

한 페이지에서 보고하는 신호 수는 20건으로 제한되어, 렌더 루프에 빠진 화면이 수천 건의 Event로 번지지 않습니다.

정확도를 높이는 선택 계측은 세 가지입니다. 없어도 검색 횟수와 Frustration 신호는 수집되지만, 결과 0건 비율과 클릭된 결과 순위는 페이지가 알려줘야만 알 수 있습니다.

<div data-momento-search-results="12">
  <a href="/doc/1" data-momento-search-position="1">첫 번째 결과</a>
</div>

<!-- 정상 동작하는 위젯이 Dead Click으로 잡히면 제외 -->
<div data-momento-ignore-dead-click>...</div>

URL이 바뀌지 않는 검색은 직접 알려줍니다.

analytics.trackSearch(query, results.length);

검색어 원문은 사람이 입력한 자유 텍스트이므로 기본적으로 보내지 않습니다. data-collect-search-terms="true"를 켜면 공백 정리와 소문자 정규화 후 100자까지 전송하며, 이메일·주민등록번호·휴대전화 번호는 브라우저에서 먼저 제거하고 서버의 PII 정책이 한 번 더 검사합니다.

2.1.2 Content-Security-Policy 허용

측정 대상 애플리케이션이 CSP를 사용하면 tracker.js 로드와 수집 요청을 명시적으로 허용해야 합니다. 예를 들어 connect-src 'self' ws: wss:만 허용된 페이지에서는 브라우저가 /collect/v1/events 요청을 차단하고 콘솔에 Refused to connect ... violates the document's Content Security Policy를 남깁니다.

Content-Security-Policy: script-src 'self' https://momento.internal; connect-src 'self' https://momento.internal

CSP를 변경할 수 없는 애플리케이션은 Collector를 같은 Origin으로 프록시하고 data-endpoint로 그 경로를 지정하면 connect-src 'self'만으로 동작합니다.

location /momento/ {
  proxy_pass https://momento.internal/;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
}
<script async src="https://momento.internal/tracker.js"
  data-site-id="SITE_CORPORATE_001" data-endpoint="/momento"></script>

관리 → 사이트 → SDK 설치 화면의 CSP 허용 항목에서 위 정책과 프록시 설정을 복사할 수 있고, 설치 진단 탭에서 수집 수신 여부와 허용 도메인, 환경 일치, 적재 파이프라인 상태를 서버 기준으로 확인할 수 있습니다. SDK도 CSP 위반을 감지하면 브라우저 콘솔에 필요한 정책을 안내합니다.

각 이벤트에는 track() 호출 순간의 URL, 제목, Referrer, Device와 최초 UTM Context가 snapshot으로 저장됩니다. 따라서 1초 배치 전송을 기다리는 동안 SPA Route가 바뀌어도 이전 페이지의 Click이 새 페이지로 잘못 분류되지 않습니다. SDK가 자동 수집하는 URL에서는 Query String과 Fragment를 제거합니다.

2.2 Consent와 Cookieless

모드 동의 전 Visitor 저장 용도
disabled Event 없음 없음 추적 중지
consent-required Event 없음 동의 후에만 저장 분석 동의가 필수인 환경
cookieless Event 수집 영속 저장 없음 익명 분석
full Event 수집 영속 Visitor/Session 허용된 내부 분석

consent-requiredlocalStorage가 차단된 브라우저에서도 안전하게 수집을 중지합니다. analytics.consent.grant()는 저장소가 없어도 현재 Page에서 유효하며, 동의를 기다리는 동안에도 최초 UTM은 유지합니다. deny()revoke()는 대기열·영속 식별자·Offline Queue를 정리합니다.

2.3 사용자 및 부서 식별 (analytics.identify)

로그인한 사용자의 사내 식별자와 부서/조직 체계 정보를 수집기에 전달합니다.

// 사용자 로그인 시 호출
analytics.identify("EMP_2026_9012", {
  department: "Digital Platform Team",
  organization: "R&D Center",
  role: "Senior Architect",
  location: "HQ_Seoul"
});

⚠️ 보안 수칙 (Security Policy):
이메일 주소, 전화번호, 주민등록번호, 카드번호 등 개인식별정보(PII)는 user_id 또는 속성으로 전달하지 마십시오. 수집기는 관리자가 지정한 Property key 제거와 URL 정책에 더해 값 기반 PII 탐지·마스킹을 Inbox 저장 전에 수행하지만, 애플리케이션의 최소 수집 책임을 대신하지는 않습니다.


2.4 커스텀 이벤트 트래킹 (analytics.track)

사용자의 특정 비즈니스 액션을 세밀하게 기록합니다.

// 서식 제출 이벤트
analytics.track("document_submitted", {
  document_id: "DOC_2026_0808",
  category: "Approval",
  amount: 1500000,
  approval_step: "Final"
});

// 파일 다운로드 이벤트
analytics.track("file_downloaded", {
  file_name: "Q2_Financial_Report.pdf",
  file_size_mb: 14.2,
  download_source: "Intranet_Notice"
});

세션 동안 유지할 로그인 상태나 업무 흐름은 Event Property와 구분해 설정할 수 있습니다. 값은 각 Event 발생 시점에 snapshot되므로 배치 전송이나 Raw Event 재집계 후에도 Session Scope Dimension이 동일합니다.

analytics.setSessionProperties({
  login_status: "authenticated",
  workflow: "approval"
});

2.5 SPA (Single Page Application) 라우트 변경 추적

React, Vue, Next.js 등 SPA 라우터 전환 시 페이지뷰를 수동 또는 자동 수집합니다.

// History API 또는 라우터 변경 감지 시
router.on('routeChangeComplete', () => {
  analytics.track("page_view");
});

2.6 오프라인 큐 & Beacon 재전송 메커니즘


3. 고급 분석 기능 사용법

Overview의 conversion_rate는 호환성을 위해 User Conversion Rate를 의미합니다. API는 conversion_users, conversion_sessions, user_conversion_rate, session_conversion_rate를 모두 제공합니다. 날짜는 관리자에게 설정된 Site Timezone 기준이며, 저장 Timestamp 자체는 UTC입니다.

3.1 첫 화면: 지금 봐야 할 것

개요 화면 상단은 총계보다 먼저 오늘 확인할 것을 보여줍니다.

3.2 방문자 인사이트 (Visitor Insights)

좌측 모니터링 → 방문자 인사이트는 여러 화면을 순회하지 않고 방문자 상황과 다음 행동을 한 화면에서 확인하는 요약 보고서입니다. 모든 지표는 이전 동일 기간과 자동 비교됩니다.

바로 가져가기: 우측 상단 요약 복사는 결론·근거·표를 포함한 Markdown을 클립보드에 넣고, Markdown은 같은 내용을 파일로 내려받습니다. 각 표는 CSV로 내보낼 수 있습니다. 관리자 → Action의 Scheduled Report에서 visitor_insight 종류를 선택하면 같은 보고서를 Webhook·Mail·Confluence·사내 메시지·AI Agent로 정기 배달하고, MCP 도구 get_visitor_insights로 AI Agent가 직접 가져갈 수 있습니다.

채널·기기별 사용자 합계는 한 사용자가 여러 채널로 방문하면 중복될 수 있고, 신규 판정은 선택한 환경의 전체 수집 이력을 기준으로 합니다.

3.3 방문자 추적 (Visitor Timeline)

탐색 → User Explorer는 실제 방문자 한 사람을 추적합니다. 개인정보 설정에서 Visitor Profile을 비활성화하면 화면과 API가 모두 차단되고, 조회 사실은 Audit Log에 기록됩니다.

3.4 이상 감지 (Anomaly Detection)

모니터링 → 방문자 인사이트 상단에서 직전 완료된 하루를 같은 요일 최근 8주의 중위수와 비교합니다. 사내 서비스는 요일 주기가 강해 단순 전주 대비나 7일 평균은 오탐이 많고, 부분 집계된 오늘을 평가하면 매일 아침 급감으로 보입니다. 그래서 완료된 하루만, 같은 요일끼리 비교합니다.

3.5 전환 기여도 (Attribution)

SDK는 세션 단위로 유입 정보를 기록하므로 방문(세션)이 Touchpoint입니다. 방문자 인사이트 → 전환 기여도에서 모델을 바꿔 비교합니다.

모델 배분 기준 종류
last_non_direct 전환 직전, 채널 정보가 있는 마지막 방문 (기본값) 단일
first_touch Lookback 안의 첫 방문 단일
last_touch 전환 직전 방문 그대로 단일
linear 경로의 모든 방문에 같은 비중 다중
time_decay 전환에 가까운 방문에 더 많이. 반감기 1·3·7·14·30일 선택 다중
position_based 첫 방문 40%, 마지막 방문 40%, 중간 방문들이 20%를 균등 분할 다중

다중 터치 모델은 하나의 전환을 여러 방문에 나눠 배분하므로 채널별 배분 전환이 소수로 표시됩니다. 어떤 모델이든 한 전환의 가중치 합은 정확히 1입니다.

배분 전환과 함께 관여 전환(경로에 등장한 전환 수), 관여 비중, 관여만(이 모델에서 배분받지 못한 전환)과 평균 경로 방문 수를 제공해 모델 간 차이를 확인할 수 있습니다. Lookback(기본 30일) 안에 방문 기록이 없는 전환은 미배분으로 분리 표기합니다.

3.5.1 교차 서비스 기여도

전환 기여도배분 범위전사 서비스로 바꾸면 같은 Workspace의 다른 서비스 방문도 Touchpoint로 인정합니다. 인사 시스템 공지를 보고 포털에서 신청한 흐름처럼, 서비스 경계를 넘는 기여를 측정합니다.

3.5.2 봇과 모니터링 트래픽은 리포트에 포함됩니다

Collector는 User-Agent로 모든 Event를 분류해 저장합니다.

분류 판정 기준
known_bot bot, crawler, spider, slurp, bingpreview, headlesschrome
monitoring uptime, pingdom, healthcheck, monitoring, prometheus
suspicious User-Agent가 비어 있음
normal 위에 해당하지 않음

traffic.class어떤 클라이언트가 보냈는지만 말합니다. 어느 네트워크에서 왔는지는 별도 필드 traffic.internal이 답합니다. 사내망에서 도는 크롤러는 known_bot이면서 traffic.internal = true입니다 — 두 사실이 서로를 지우지 않습니다.

v0.34.33 이전에는 사내망에서 발생한 Event의 분류를 internal_traffic이 덮어썼습니다. 그래서 아래 권장 조건이 사내 사용자 전체를 함께 제외했고, 사내망 크롤러는 어떤 traffic.class 필터로도 찾을 수 없었습니다.

그 이전에 수집된 Event도 traffic.class로는 normal로 읽힙니다internal_traffic으로 저장됐다는 것은 그 클라이언트가 다른 무엇으로도 분류되지 않았다는 뜻이기 때문입니다. 덕분에 릴리스 날짜를 걸치는 기간을 조회해도 저장한 Segment의 의미가 도중에 바뀌지 않습니다. Tracking Debugger는 실제로 저장된 값을 그대로 보여 줍니다.

중요: 리포트는 이 분류로 걸러내지 않습니다. 크롤러와 모니터링 요청도 사용자·세션·페이지뷰에 함께 집계됩니다. 1분마다 페이지를 확인하는 Uptime 감시는 하루 1,440건의 페이지뷰를 더합니다.

제외하려면 Segment 조건 traffic.class = normal을 사용하세요 — 사내 사용자는 그대로 남습니다. 사내망 트래픽만 제외하려면 traffic.internal = false를 사용합니다. 저장한 Segment는 Query·Funnel·Retention·경험 비교에 그대로 넣을 수 있습니다.

분류 결과는 사용자 탐색기의 타임라인과 관리자 → 수집 디버거에서 Event별로 확인할 수 있습니다.

3.5.3 같은 이름의 숫자가 뜻하는 것

3.6 행동 기반 Segment

Segment 조건에 사람의 전체 이력을 기준으로 하는 필드를 사용할 수 있습니다.

이 필드들은 사람의 전체 이력을 한 번 집계한 뒤 대상자를 추려내는 방식으로 실행됩니다. 조회 기간이 넓거나 이벤트가 많아도 집계는 한 번만 수행됩니다.

숫자 비교(>=, <=, = 등)만 지원합니다. 예를 들어 entity.sessions >= 3 AND entity.conversions = 0은 “세 번 이상 방문했지만 전환하지 않은 사람”이고, entity.zero_result_searches >= 1 AND entity.search_clicks = 0은 “검색했지만 아무것도 찾지 못한 사람”입니다. 막힘 신호 목록은 서버가 고정하므로 Segment 조건에 Event 이름을 직접 넣을 필요가 없습니다.

방문자 인사이트의 실행 대상, Frustration과 검색 분석 화면의 실행 대상에서 Segment 만들기를 누르면 서버가 세어 준 정의가 그대로 저장되어 Query·Funnel·Action에서 재사용됩니다. 기간 기준과 전체 이력 기준의 차이 때문에 인원이 다를 수 있는 경우에는 안내 문구를 함께 표시합니다.

정기 배달에서도 같은 정의를 씁니다. 관리자 → Action의 Scheduled Report에서 Segment 집계를 고르면 저장된 Segment를 선택할 수 있고, 화면이 쓰는 것과 같은 컴파일러로 평가하므로 중첩 조건과 행동 기반 조건이 그대로 적용됩니다. Event 이름·Feature·부서 입력란은 그 위에 겹쳐 더 좁히는 용도이며, Segment를 고르지 않으면 그 세 조건만으로 집계합니다.

3.7 Segment 비교 Funnel

퍼널 화면의 비교 Segment에서 최대 3개를 선택하면 전체와 나란히 같은 퍼널을 평가합니다. 단계·모드·최대 전환 시간이 동일하게 적용되므로 열 사이 비교가 성립합니다.

3.8 Retention Segment 비교

코호트 화면의 비교 Segment에서 최대 3개를 선택하면 전체와 Retention 곡선을 비교합니다.

3.9 집단별 경험 비교

경험 화면의 비교 Segment에서 최대 3개를 선택하면 같은 측정을 집단별로 나눠 봅니다. 사이트 전체 p75는 빠른 환경과 느린 환경을 평균해 둘 다 가립니다.

3.10 쿼리 빌더 (Query Builder)

  1. 필터링 조건: 날짜 범위, 부서, 특정 이벤트명, 커스텀 속성(Key-Value) 조건 설정.
  2. 그룹핑 (GroupBy): department별 또는 browser별 시계열 집계 그래프 생성.

3.11 2~10단계 퍼널 분석 (Funnel Analysis)

3.12 사용자 경로 분석 (Path Analysis)

3.13 Segment와 저장된 Exploration

3.14 Ecommerce와 User Explorer

3.15 Cohort, Business Journey와 Feature Adoption

3.16 Experience와 Release Impact

SDK의 자동 RUM은 LCP, INP, CLS, FCP, TTFB, Load와 Resource Error를 web_vital, resource_error Event로 전송합니다. Release 비교가 필요하면 초기화 시 releaseVersion, gitSha, deploymentId를 지정하십시오. Experience 화면은 오류가 발생한 사용자와 정상 사용자의 전환율을 비교합니다.

3.17 AI / Agent / MCP Event 표준

ai_prompt, ai_response, ai_model_call, ai_tool_call, ai_agent_run, ai_mcp_call을 사용하고 model, provider, agent, mcp_server, tool, success, latency_ms, input_tokens, output_tokens, cost, fallback_model을 Property로 전달합니다. 실제 Prompt/Response 원문은 개인정보와 기밀정보 위험 때문에 기본 분석 규격에 포함하지 않는 것을 권장합니다.

3.18 Workspace, Feature, Search와 Frustration

3.18.1 사내 사용 현황

내부 서비스에서 “누가 쓰고 있는가”는 조직 단위로 묻는 질문입니다. 사내 사용 현황은 같은 기간을 여섯 가지로 나눠 보여줍니다.

기준 어디서 오는가
Collector가 IP를 관리자 → 네트워크 망 설정과 대조해 분류합니다. 어디에도 맞지 않으면 External / Unclassified입니다.
부서 · 조직 analytics.identify가 보낸 사용자 속성입니다(2.3 참고). 보내지 않으면 (미지정)으로 모입니다.
서비스 Event의 service Property이며, 없으면 Site의 Service Name을 씁니다.
기능 Event의 feature Property입니다.
버튼 click Event의 button·element_text·element_id 중 먼저 있는 것입니다.

각 기준은 Event 수·사용자 수·Session 수를 함께 보여주므로, “많이 눌렀다”와 “많은 사람이 눌렀다”를 구분할 수 있습니다. 상위 20개까지 표시합니다.

(미지정)이 대부분이라면 데이터가 없는 것이 아니라 그 속성을 보내지 않고 있는 것입니다. 부서·조직은 analytics.identify로, 기능은 Event Property로 채웁니다.

3.19 Experiment와 Goal

Metric Goal 평가에는 기간 진행률과 착지 예상치가 함께 표시됩니다. 누적 지표는 현재 속도를 기간 끝까지 연장하고, 비율 지표는 누적되지 않으므로 현재 관측값을 그대로 사용합니다. 누적 지표에는 목표까지 남은 양과 필요 일일 속도를 제공하며, 기간 진행률이 10% 미만이면 추정을 보류합니다.


3.20 발견을 정기 배달로 연결

분석 화면에서 찾은 내용을 반복해서 받으려면 관리 → Action에서 Scheduled Report를 만듭니다. v0.19부터 정의 문서를 직접 작성하지 않습니다.

3.20.1 정기 배달의 조회 기간

정기 배달은 화면과 같은 기간을 사용합니다. days: 7이면 사이트 시간대의 최근 7일이며 로컬 자정에 끝납니다. 배달이 실제로 나간 시각과 무관하므로, 배달된 숫자와 화면의 숫자가 일치합니다.

payload에 fromto가 함께 담기므로 어떤 기간을 측정한 것인지 확인할 수 있습니다.

3.21 분석 쿼리 제한

조회가 25초 제한을 넘으면 화면이 원인과 바로 누를 수 있는 대안을 함께 제시합니다: 기간 줄이기(기간 선택이 있는 화면), Segment로 대상 좁히기, 쿼리 빌더에서 Fast 모드로 실행, 정기 배달로 받기. 기간을 바꿀 수 없는 화면에서는 기간 줄이기를 제안하지 않습니다 — 누를 수 없는 버튼은 안내가 아니라 막다른 길이기 때문입니다.

조회가 8초를 넘기면 대기 화면이 상황을 알리고, 20초를 넘기면 제한에 가까워지고 있음을 알려 완료 전에 대응할 수 있게 합니다.

분석 기간 선택지는 사이트의 최대 정확 조회 기간 정책을 반영합니다. 정책이 허용하지 않는 기간은 목록에 나타나지 않고, 넘는 기간을 요청하면 RANGE_EXCEEDS_POLICY로 거절하면서 현재 한도를 함께 알려줍니다. 이 한도는 관리자 → 분석 쿼리 보호에서 조정합니다.

경험 비교, Retention, Adoption, Frustration, 검색 분석, Feature Intelligence, Workspace Roll-Up, AI 분석, Ecommerce 화면에서 분석 기간을 직접 선택할 수 있습니다. Retention은 코호트 특성상 90·180·365일, Feature Intelligence는 30·60·90일, 나머지는 7·30·90일을 제공합니다. 인사이트와 데이터 품질 화면은 최근 7일 고정입니다 — 최근 상태를 보는 운영 화면이기 때문입니다.

권한 부족처럼 사용자가 화면에서 해결할 수 없는 문제에는 버튼을 만들지 않고 무엇을 요청해야 하는지 알려줍니다.

대화형 분석 조회는 25초를 넘기면 중단되고 분석 쿼리가 25초 제한을 초과했습니다라는 안내와 함께 대안을 제시합니다. 기간을 좁히거나 Segment로 범위를 줄이고, 반복적으로 필요한 넓은 범위의 집계는 Scheduled Report로 정기 배달받으십시오.

4. BI 연동 & 데이터 내보내기 (Export)

Raw CSV / NDJSON 형식으로 원클릭 내보내기가 가능합니다.

# Python Pandas 연동 예시
import pandas as pd

# Momento Export NDJSON 읽기
df = pd.read_json('momento_events_20260808.ndjson', lines=True)

# 부서별 이벤트 건수 분석
dept_stats = df.groupby('department')['event_name'].value_counts()
print(dept_stats)

4.1 개인 API Key로 접근할 때

BI 도구나 스크립트는 개인 API Key(mom_key_)를 Authorization: Bearer로 보냅니다. Key는 소유자의 권한을 그대로 따르되, 두 가지는 항상 거부됩니다.

Key를 폐기하거나 만료시키면, 그리고 소유자 계정을 비활성화하면 즉시 401을 받습니다.

Key는 조회 범위를 따로 제한하지 않습니다. 특정 사이트만 허용하려면 소유자의 Workspace 권한을 조정하세요 — 조회 가능한 사이트는 사람과 Key가 동일합니다.

5. Query Mode와 비용 보호

6. 개인정보 요청 Workflow

관리자는 Privacy Requests에서 삭제 또는 Export 요청을 먼저 생성하고 별도의 승인 동작으로 실행합니다. User ID 삭제는 Identity Graph에 연결된 Visitor까지 포함하며, 기간 삭제는 Site Timezone 경계를 사용합니다. 요청자·승인자·결과 건수·상태는 Audit와 요청 이력에 남습니다. 승인 완료된 Export는 이벤트·사용자·세션 속성을 포함한 전체 NDJSON으로 내려받을 수 있습니다.

7. Console 탐색과 표 활용