- 제품 분석 작동 방식
- 제품 분석 활성화
- GitLab 프로젝트 온보딩
- 애플리케이션에 계기 박기
- 제품 분석 대시보드
- 퍈넬 분석
- Raw data export
- 제품 분석 사용량 할당량 보기
- 모범 사례
- 문제 해결
제품 분석
- 실험 기능으로 도입된 GitLab 15.4에서
cube_api_proxy
라는 플래그로 도입됨. 기본적으로 비활성화됨.cube_api_proxy
는 GitLab 15.6에서 제품 분석 API만을 참조하도록 변경됨.cube_api_proxy
가 제거되고 GitLab 15.10에서product_analytics_internal_preview
로 대체됨.product_analytics_internal_preview
가 GitLab 15.11에서product_analytics_dashboards
로 대체됨.- Snowplow 통합이 GitLab 15.11에서 플래그인
product_analytics_snowplow_support
와 함께 도입됨. 기본적으로 비활성화됨.- Snowplow 통합 기능 플래그
product_analytics_snowplow_support
가 GitLab 16.4에서 제거됨.- GitLab self-managed에서 GitLab.com으로 이동함. (GitLab 16.7)
- GitLab 16.7에서 베타 기능으로 활성화됨.
product_analytics_dashboards
가 GitLab 16.11에서 기본적으로 활성화됨.- GitLab 16.11에서 Self-managed 및 GitLab Dedicated에서 활성화됨.
- 플래그
product_analytics_dashboards
가 GitLab 17.1에서 제거됨.- GitLab 17.5에서 베타로 변경되고
product_analytics_admin_settings
플래그가 추가됨.- GitLab 17.5에서 베타로 변경되고
product_analytics_features
플래그가 추가됨.
제품 분석 기능을 사용하면 사용자 동작을 추적하고 응용 프로그램의 사용 방법 및 사용자 제품과의 상호작용에 대한 통찰을 얻을 수 있습니다. GitLab의 제품 분석으로 수집된 데이터를 사용하여 사용자를 더 잘 이해하고 퍼널의 마찰 지점을 식별하며 데이터 기반의 제품 결정을 내릴 수 있으며 궁극적으로 사용자 참여와 비즈니스 성장을 이끌어내는 더 나은 제품을 만들 수 있습니다.
제품 분석 설정 및 기능에 대한 개요를 보려면 제품 분석 소개 비디오를 시청하세요.
제품 분석의 비전 및 개발에 대한 자세한 정보는 그룹 방향 페이지를 참조하십시오. 제품 분석 버그 또는 기능에 대한 피드백을 남기려면:
- 이슈 391970에 의견 작성
-
group::product analytics
라벨로 이슈를 생성
제품 분석 작동 방식
제품 분석은 다음 도구를 사용합니다.
- Snowplow - 행동 데이터를 수집하고 ClickHouse로 전달하는 개발자 지향 엔진입니다.
- ClickHouse - 분석 데이터를 저장, 쿼리 및 검색하는 데 적합한 데이터베이스입니다.
- Cube - ClickHouse에 저장된 데이터에 대한 쿼리를 실행하는 API를 제공하는 범용 시맨틱 레이어입니다.
다음 다이어그램은 제품 분석 흐름을 보여줍니다.
제품 분석 활성화
- GitLab 15.6에서 플래그인
cube_api_proxy
와 함께 도입됨. 기본적으로 비활성화됨.- GitLab 15.7에서
product_analytics_admin_settings
이라는 플래그로 이동됨. 기본적으로 비활성화됨.cube_api_proxy
플래그가 제거되고 GitLab 15.10에서product_analytics_internal_preview
로 대체됨.product_analytics_internal_preview
플래그가 GitLab 15.11에서product_analytics_dashboards
로 대체됨.- 플래그
product_analytics_admin_settings
가 GitLab 16.11에서 활성화됨.- 플래그
product_analytics_admin_settings
가 GitLab 17.1에서 제거됨.
프로젝트 응용 프로그램에서 이벤트를 추적하려면 제품 분석을 활성화하고 구성해야 합니다.
제품 분석 제공업체
당신의 GitLab 인스턴스는 제품 분석 제공업체에 연결됩니다. 제품 분석 제공업체는 분석 데이터를 수신, 처리, 저장 및 조회하기 위해 필요한 서비스의 모음입니다.
GitLab.com에서는 Google Cloud Platform 존 ‘us-central-1’에서 제공되는 GitLab 관리 제공업체를 사용할 수 있습니다. 이 서비스는 베타 상태로만 제공됩니다.
GitLab에서 제품 분석 제공업체를 관리하는 경우, 분석 데이터는 1년 동안 유지됩니다. 언제든지 지원팀에 문의하여 데이터 삭제를 요청할 수 있습니다.
GitLab 16.0에 도입되었습니다.
Self-managed 제품 분석 제공업체는 제품 분석 Helm 차트의 배포된 인스턴스입니다.
GitLab.com에서는 self-managed 제공업체 세부 정보가 프로젝트 수준 설정에 정의되어 있습니다.
GitLab self-managed 및 GitLab Dedicated에서는 인스턴스 수준 설정에서 self-managed 분석 제공업체를 정의해야 합니다. 다른 프로젝트에 대해 다른 제공업체가 필요한 경우 프로젝트 수준 설정에서 추가 분석 제공업체를 정의할 수 있습니다.
인스턴스 수준 설정
Offering: Self-managed, GitLab Dedicated
전제 조건:
- 인스턴스에 대한 관리자 액세스가 있어야 합니다.
참고: 이러한 인스턴스 수준 설정은 GitLab self-managed 및 GitLab Dedicated에서 제품 분석을 활성화하려면 필요하며, 기본적으로 모든 프로젝트에 적용됩니다.
인스턴스에서 제품 분석을 활성화하려면:
- 왼쪽 사이드바에서 맨 아래 관리자를 선택합니다.
- 설정 > 분석을 선택합니다.
- 구성 값을 입력합니다.
- 변경 사항 저장을 선택합니다.
프로젝트 수준 설정
프로젝트마다 관리자가 정의한 인스턴스 수준 설정을 무시하고 프로젝트에 대해 다른 구성을 가진 제품 분석 인스턴스를 원한다면 프로젝트마다 이 설정을 재정의할 수 있습니다.
전제 조건:
- 프로젝트 또는 프로젝트가 속한 그룹에서 적어도 관리자 역할이 있어야 합니다.
- 프로젝트는 그룹 네임스페이스에 있어야 합니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 설정 > 분석을 선택합니다.
- 데이터 소스를 확장하고 구성 값을 입력합니다.
- 변경 사항 저장을 선택합니다.
GitLab 프로젝트 온보딩
- GitLab 17.1에서 변경된 최소 필요 역할.
전제 조건:
- 프로젝트 또는 프로젝트가 속한 그룹에서 적어도 관리자 역할이 있어야 합니다.
GitLab 프로젝트를 온보딩하는 것은 제품 분석에 사용되는 이벤트를 받을 수 있도록 프로젝트를 준비하는 것을 의미합니다.
프로젝트를 온보딩하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 분석 > 분석 대시보드를 선택합니다.
- 제품 분석에서 설정을 선택합니다.
그런 다음 제공업체 유형에 따라 설정을 계속합니다.
전제 조건:
- GitLab-managed provider에 액세스할 수 있어야 합니다.
- 이 지역에서 이벤트 수집 및 처리에 동의합니다 확인란을 선택합니다.
- GitLab 관리 제공업체 연결을 선택합니다.
- 이미 구성된 프로젝트 수준 설정을 제거합니다:
- 분석 설정으로 이동을 선택합니다.
- 데이터 소스를 확장하고 구성 값을 제거합니다.
- 변경 사항 저장을 선택합니다.
- 분석 > 분석 대시보드를 선택합니다.
- 제품 분석에서 설정을 선택합니다.
- GitLab 관리 제공업체 연결을 선택합니다.
인스턴스가 생성되었으며 프로젝트가 온보딩되었습니다.
- 자체 제공업체 연결을 선택합니다.
- 자체 제품 분석 제공업체의 프로젝트 수준 설정을 구성합니다:
- 분석 설정으로 이동을 선택합니다.
- 데이터 소스를 확장하고 구성 값을 입력합니다.
- 변경 사항 저장을 선택합니다.
- 분석 > 분석 대시보드를 선택합니다.
- 제품 분석에서 설정을 선택합니다.
- 자체 제공업체 연결을 선택합니다.
인스턴스가 생성되었으며 프로젝트가 온보딩되었습니다.
애플리케이션에 계기 박기
추적 SDKs를 사용하여 데이터를 수집하기 위해 코드에 계기를 박을 수 있습니다.
제품 분석 대시보드
- 15.5 버전에서 flag ‘product_analytics_internal_preview’와 함께 도입되었습니다. 기본적으로 비활성화됨.
제품 분석 대시보드는 분석 대시보드 하위의 대시보드 중 일부입니다.
구체적으로, 제품 분석 대시보드 및 시각화는 cube_analytics
데이터 유형을 사용합니다.
cube_analytics
데이터 유형은 제품 분석을 활성화했을 때 정의된 Cube 인스턴스에 연결됩니다.
모든 필터와 쿼리는 Cube 인스턴스로 전송되며 해당 데이터는 제품 분석 데이터 소스에 의해 처리되어 적절한 시각화로 렌더링됩니다.
cube_analytics
에서의 데이터 테이블 시각화에는 링크를 렌더링하는 추가 구성 옵션이 있습니다.
이 옵션은 여러 링크를 지정하는 text
및 href
속성을 가진 객체 배열입니다.
href
에는 여러 차원이 포함된 경우 각 값을 단일 URL로 합칩니다.
예시를 확인하세요.
누락된 데이터 채우기
- 16.3 버전에서 flag ‘product_analytics_dashboards’와 함께 도입되었습니다. 기본적으로 비활성화됨.
데이터를 내보낼 때 또는 대시보드를 보는 경우 특정 날짜에 대한 데이터가 없는 경우 누락된 데이터는 0
으로 자동으로 채워집니다.
자동 채움 접근 방식에는 이점과 한계가 있습니다.
- 이점:
- 시갤정된 날짜 범위와 일치하는 시각화의 일축을 제거하여 누락된 데이터에 대한 모호함을 제거합니다.
- 데이터 내보내기에는 데이터 분석을 쉽게 만드는 전체 날짜 범위에 대한 행이 포함됩니다.
- 한계:
-
day
granularity를 사용해야 합니다. 다른 모든 정밀도는 지원되지 않습니다. -
inDateRange
로 정의된 날짜 범위만이 채워집니다.- UI의 날짜 선택기는 이미 이 필터를 사용합니다.
- 데이터 채움은 쿼리에 정의된 제한을 무시합니다. 20일 동안 10개의 데이터 포인트에 대해 제한을 걸었다면 누락된 데이터가
0
으로 채워진 20개의 데이터 포인트가 반환됩니다. Issue 417231은 이 한계에 대한 해결책을 제안합니다.
-
퍈넬 분석
애플리케이션을 통한 사용자의 흐름 및 미리 정의된 흐름(예: 결제 프로세스 또는 티켓 구매)에서 사용자가 중도에서 빠져나가는 지점을 이해하기 위해 퍈넬 분석을 사용하세요.
각 프로젝트는 무제한의 퍼널을 정의할 수 있습니다.
대시보드와 마찬가지로 퍼널은 GitLab YAML 스키마로 정의되며 프로젝트 저장소의 .gitlab/analytics/funnels/
디렉터리에 저장됩니다.
저장소에 다른 저장소를 가리키는 사용자 정의 대시보드 포인터 프로젝트가 있는 경우 퍼널은 포인터 프로젝트에 정의되어야 합니다.
퍼널 대시보드 생성
퍼널 대시보드를 만들려면 먼저 퍼널 정의 파일과 시각화를 만들어야 합니다. 각 퍼널에는 사용자 정의 시각화가 정의되어야 합니다. 퍼널 정의 및 시각화가 완료되면 퍼널 분석 동작을 시각화하기 위해 사용자 정의 대시보드를 생성할 수 있습니다.
퍼널 정의 생성
-
.gitlab/analytics/
디렉터리에서funnels
이라는 디렉터리를 만듭니다. - 새로운
.gitlab/analytics/funnels
디렉터리에서 퍼널 정의 YAML 파일을 생성합니다.
퍼널 정의에는 seconds_to_convert
키와 steps
배열이 포함되어야 합니다.
키 | 설명 |
---|---|
seconds_to_convert
| 사용자가 퍼널을 완료하는 데 필요한 시간(초). |
steps
| 퍼널 단계 배열. |
각 단계에는 name
, target
, 및 action
키가 포함되어야 합니다.
키 | 설명 |
---|---|
name
| 단계의 이름. 고유한 슬러그여야 합니다. |
action
| 수행된 동작. (pageview 만 지원됨.)
|
target
| 단계의 대상. (pageview 만 지원되므로 경로여야 함.)
|
다음 예는 세 개의 대상 페이지를 통해 1시간 내에 구매를 완료한 사용자를 추적하는 퍼널을 정의합니다:
seconds_to_convert: 3600
steps:
- name: view_page_1
target: '/page1.html'
action: 'pageview'
- name: view_page_2
target: '/page2.html'
action: 'pageview'
- name: view_page_3
target: '/page3.html'
action: 'pageview'
퍼널 visualizations 생성
퍼널 시각화를 만들려면 차트 시각화 정의단계를 따릅니다.
퍼널 시각화는 측정 count
와 차원 step
을 지원합니다.
다음 예는 퍼널에서 다른 단계에 도달한 사용자 수를 시각화하는 막대 차트를 정의합니다:
version: 1
type: ColumnChart
data:
type: cube_analytics
query:
measures:
- FUNNEL_NAME.count
dimensions:
- FUNNEL_NAME.step
limit: 100
timezone: UTC
timeDimensions: []
options:
xAxis:
name: Step
type: category
yAxis:
name: Total
type: value
참고:
YAML 정의에서 정의된 퍼널 이름은 시감화 정의에서 참조될 수 있는 슬러그로 변환됩니다.
예를 들어, 퍼널 이름 Successful Conversions
이 successful_conversions
로 변환됩니다.
퍼널 조회
REST API를 사용하여 퍼널 데이터를 조회할 수 있습니다.
이를 위해 아래 예시 쿼리 본문을 사용할 수 있습니다. 단, FUNNEL_NAME
을 사용자의 퍼널 이름으로 대체해야 합니다.
참고:
퍼널의 이름은 퍼널 정의의 YAML 파일 이름에서 언더스코어로 단어를 구분하고 특수 문자를 제거해 생성됩니다.
예를 들어, .gitlab/analytics/funnels/Successful Conversions.yaml
에 대한 퍼널 정의 파일의 경우 퍼널 이름은 successful_conversions
입니다.
이 퍼널 이름은 시각화 정의에서 참조될 수 있습니다.
{
"query": {
"measures": [
"FUNNEL_NAME.count"
],
"order": {
"FUNNEL_NAME.count": "desc"
},
"filters": [
{
"member": "FUNNEL_NAME.date",
"operator": "beforeDate",
"values": [
"2023-02-01"
]
}
],
"dimensions": [
"FUNNEL_NAME.step
]
}
}
Raw data export
기본 저장 엔진에서의 raw 이벤트 데이터를 내보내어 디버그하고 데이터 분석을 위한 데이터셋을 생성하는 데 도움이 됩니다.
Cube는 raw 데이터와 API 간의 추상화 계층으로 작동하기 때문에 내보낸 raw 데이터에는 몇 가지 주의 사항이 있습니다:
- 데이터는 선택한 차원으로 그룹화됩니다. 그러므로, 내보낸 데이터는
utcTime
및userAnonymousId
를 모두 포함해야만 완전할 수 있습니다. - 데이터는 기본적으로 최대 10,000행으로 제한되지만 최대 50,000행으로 제한을 늘릴 수 있습니다. 데이터셋에 50,000행보다 더 많은 데이터가 있는 경우,
limit
및offset
매개변수를 사용하여 결과를 페이지별로 정렬해야 합니다. - 데이터는 항상 JSON 형식으로 반환됩니다. 다른 형식으로 필요한 경우, 스크립팅 언어를 사용하여 JSON을 필요한 형식으로 변환해야 합니다.
문제 391683은 더 확장 가능한 내보내기 솔루션을 구현하기 위한 노력을 추적합니다.
Cube 쿼리로 raw 데이터 내보내기
REST API를 사용하여 raw 데이터를 쿼리하고, JSON 출력을 필요한 형식으로 변환할 수 있습니다.
특정 차원을 위한 raw 데이터를 내보내려면 dimensions
키에 차원 목록을 전달하세요.
예를 들어, 다음 쿼리는 다음과 같은 속성에 대한 raw 데이터를 출력합니다:
POST /api/v4/projects/PROJECT_ID/product_analytics/request/load?queryType=multi
{
"query":{
"dimensions": [
"TrackedEvents.docEncoding",
"TrackedEvents.docHost",
"TrackedEvents.docPath",
"TrackedEvents.docSearch",
"TrackedEvents.eventType",
"TrackedEvents.localTzOffset",
"TrackedEvents.pageTitle",
"TrackedEvents.src",
"TrackedEvents.utcTime",
"TrackedEvents.vpSize"
],
"order": {
"TrackedEvents.apiKey": "asc"
}
}
}
제품 분석 사용량 할당량 보기
- GitLab 16.6에 도입됨, 기본적으로 비활성화된
product_analytics_usage_quota
라는 플래그와 함께 이름.- GitLab 16.7에서 일반 사용 가능해짐.
product_analytics_usage_quota
플래그 제거됨.
제품 분석 사용량 할당량은 계기화된 응용 프로그램에서 받은 이벤트 수를 기준으로 계산됩니다.
제품 분석 사용량 할당량을 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 설정 > 사용량 할당량을 선택합니다.
- 제품 분석 탭을 선택합니다.
해당 탭에는 그룹의 월별 총계와 프로젝트별 사용량이 표시됩니다. 현재 월에는 현재까지 계산된 이벤트가 표시됩니다.
사용량 할당량에는 제품 분석을 수행하지 않은 프로젝트가 포함되지 않습니다.
모범 사례
- 처음부터 주요 지표와 목표를 정의하세요. 수집된 데이터를 어떻게 사용할 지 알기 위해 답변을 원하는 질문을 결정하세요.
- 사용자 여정의 모든 단계에서 이벤트 데이터를 사용하세요. 이 데이터는 사용자 경험의 포괄적인 시선을 제공합니다.
- 팀의 요구에 맞는 대시보드를 작성하세요. 서로 다른 팀은 서로 다른 데이터 통찰력이 필요합니다.
- 정기적으로 대시보드를 검토하세요. 이렇게 함으로써 고객 결과를 검증하고 데이터의 추세를 파악하며 시각화를 업데이트할 수 있습니다.
- 주기적으로 원시 데이터를 내보내세요. 대시보드는 데이터 하위 집합에 대한 개요만 제공하기 때문에 보다 심층적인 분석을 위해 데이터를 내보내야 합니다.
문제 해결
이벤트가 수집되지 않음
제품 분석 사용을 확인하고 제품 분석이 올바르게 설정되어 있는지 확인하세요.
제품 분석 접근이 제한됨
제품 분석 제공 업체에 연결되어 있는지 확인하세요.