Application Insights를 사용하여 사용량 분석

가장 인기 있는 웹 또는 모바일 앱의 기능은 무엇인가요? 사용자가 앱으로 이러한 목표를 달성하고 있나요? 특정 지점에서 나갔다가 나중에 돌아오나요? Application Insights는 사람들의 앱 사용 방식을 잘 이해할 수 있도록 도와줍니다. 앱을 업데이트할 때마다 사용자들에게 얼마나 적절한지 평가할 수 있습니다. 이 정보를 사용하면 다음 개발 주기에 대한 데이터 기반 결정을 내릴 수 있습니다.

앱에서 원격 분석 보내기

앱 서버 코드와 웹 페이지에 모두 Application Insights를 설치하여 최상의 환경을 얻습니다. 앱의 클라이언트 및 서버 구성 요소는 분석을 위해 Azure Portal로 원격 분석을 다시 보냅니다.

  1. 서버 코드:ASP.NET, Azure, Java, Node.js 또는 기타 앱에 적합한 모듈을 설치합니다.

  2. 웹 페이지 코드: JavaScript SDK를 사용하여 웹 페이지에서 데이터를 수집합니다. JavaScript SDK 시작을 참조하세요.

    참고 항목

    2025년 3월 31일에 계측 키 수집에 대한 지원이 종료됩니다. 계측 키 수집은 계속 작동하지만 더 이상 기능에 대한 업데이트 또는 지원을 제공하지 않습니다. 연결 문자열로 전환하여 새로운 기능을 활용합니다.

    웹 사이트 모니터링을 위한 고급 구성에 대해 자세히 알아보려면 JavaScript SDK 참조 문서를 확인하세요.

  3. 모바일 앱 코드: App Center SDK를 사용하여 앱에서 이벤트를 수집합니다. 그런 다음 이 가이드에 따라 분석을 위해 이러한 이벤트의 복사본을 Application Insights로 보냅니다.

  4. 원격 분석 가져오기: 몇 분 동안 디버그 모드에서 프로젝트를 실행합니다. 그런 다음 Application Insights의 개요 창에서 결과를 찾습니다.

    앱을 게시하여 앱의 성능을 모니터링하고 사용자가 앱으로 수행하는 작업을 확인합니다.

사용 현황 인구 통계 및 통계 탐색

사용자가 언제 앱을 사용하고 어떤 페이지에 가장 관심이 있는지 알아봅니다. 또한 사용자의 위치와 사용자가 사용하는 브라우저 및 운영 체제를 확인할 수 있습니다.

사용자세션 보고서는 페이지 또는 사용자 지정 이벤트별로 데이터를 필터링합니다. 보고서는 위치, 환경 및 페이지와 같은 속성을 기준으로 데이터를 분류합니다. 필터를 직접 추가할 수도 있습니다.

Screenshot that shows the Users tab with a bar chart.

오른쪽의 자세한 정보에는 데이터 집합에서 주목할 만한 패턴이 나와 있습니다.

  • 사용자 보고서는 선택한 기간 내에 페이지에 액세스하는 고유한 사용자 수를 계산합니다. 웹앱의 경우 쿠키를 사용하여 사용자 수가 계산됩니다. 누군가가 다른 브라우저 또는 클라이언트 컴퓨터를 사용하여 사이트에 액세스하는 경우 두 번 이상 계산됩니다.
  • 세션 보고서는 사이트에 액세스하는 사용자 세션의 수를 표로 작성합니다. 세션은 사용자가 시작한 활동 기간을 나타내며 30분을 초과하는 비활성 기간으로 종료됩니다.

사용자, 세션 및 이벤트 도구에 대한 자세한 내용은 Application Insights의 사용자, 세션 및 이벤트 분석을 참조하세요.

재방문 주기: 다시 찾아온 사용자는 몇 명이나 되나요?

재방문 주기는 특정 시간 버킷 동안 일부 비즈니스 작업을 수행한 사용자의 코호트를 기준으로 사용자가 해당 앱을 다시 사용하는 빈도를 이해하는 데 도움이 됩니다. 마케팅 목록의 구성원을 관리할 수 있습니다.

  • 사용자가 다시 찾아오게 만드는 특정 기능을 이해합니다.
  • 실제 사용자 데이터에 따라 가설을 세웁니다.
  • 재방문 주기가 제품에서 문제가 되는지 여부를 확인합니다.

Screenshot that shows the Retention workbook, which displays information about how often users return to use their app.

상단의 재방문 주기 제어를 사용하여 특정 이벤트 및 시간 범위를 정의하여 보존을 계산할 수 있습니다. 중간에 표시되는 그래프는 지정된 시간 범위별로 전반적인 재방문 주기 비율을 시각적으로 보여 줍니다. 하단의 그래프는 특정 기간의 개별 재방문 주기를 나타냅니다. 이 수준의 세부 정보를 사용하면 사용자가 수행하는 작업과 다시 방문한 사용자에게 영향을 미칠 수 있는 요인을 좀 더 자세히 이해할 수 있습니다.

재방문 주기 통합 문서에 대한 자세한 내용은 Application Insights를 사용한 웹 애플리케이션에 대한 사용자 재방문 주기 분석을 참조하세요.

사용자 지정 비즈니스 이벤트

앱의 사용자 상호 작용을 이해하려면 코드 줄을 삽입하여 사용자 지정 이벤트를 기록합니다. 이러한 이벤트는 단추 선택과 같은 다양한 사용자 작업 또는 구매 또는 게임 승리와 같은 중요한 비즈니스 이벤트를 추적합니다.

클릭 분석 자동 수집 플러그 인을 사용하여 사용자 지정 이벤트를 수집할 수도 있습니다.

경우에 따라 페이지 보기가 유용한 이벤트를 나타낼 수 있지만 일반적으로 사실이 아닙니다. 사용자는 제품 페이지를 열기만 하고 제품을 구입하지 않을 수 있습니다.

특정 비즈니스 이벤트를 사용하여 사이트를 통한 사용자의 진행 상황을 차트로 나타낼 수 있습니다. 다양한 옵션에 대한 사용자의 선호도를 알아내고 사이트를 나가거나 어려움을 느끼는 경우를 알 수 있습니다. 이러한 지식을 바탕으로 개발 백로그에서 우선 순위를 결정할 수 있습니다.

이벤트는 앱의 클라이언트 쪽에서 로깅될 수 있습니다.

      appInsights.trackEvent({name: "incrementCount"});

또는 서버 쪽에서 이벤트를 로그할 수 있습니다.

    var tc = new Microsoft.ApplicationInsights.TelemetryClient();
    tc.TrackEvent("CreatedAccount", new Dictionary<string,string> {"AccountType":account.Type}, null);
    ...
    tc.TrackEvent("AddedItemToCart", new Dictionary<string,string> {"Item":item.Name}, null);
    ...
    tc.TrackEvent("CompletedPurchase");

포털에서 검사할 때 이벤트를 필터링하거나 분할할 수 있도록 이러한 이벤트에 속성 값을 추가할 수 있습니다. 또한 익명 사용자 ID와 같은 표준 속성 세트가 각 이벤트에 추가되므로 개별 사용자의 활동 시퀀스를 추적할 수 있습니다.

사용자 지정 이벤트속성에 대해 자세히 알아보세요.

이벤트 분석 및 분할

사용자, 세션 및 이벤트 도구에서 사용자, 이벤트 이름 및 속성별로 사용자 지정 이벤트를 분석 및 분할할 수 있습니다.

Screenshot that shows the Events tab filtered by AnalyticsItemsOperation and split by AppID.

사용 환경에 있을 때마다 마지막 실행 쿼리 열기 아이콘을 선택하여 기본 쿼리로 돌아갑니다.

Screenshot of the Application Insights Session pane in the Azure portal. The Open the last run query icon is highlighted.

그런 다음, 기본 쿼리를 수정하여 원하는 정보의 종류를 가져올 수 있습니다.

다음은 페이지 보기에 대한 기본 쿼리의 예입니다. 계속 진행하여 쿼리 편집기에 직접 붙여넣어 테스트합니다.

// average pageView duration by name
let timeGrain=5m;
let dataset=pageViews
// additional filters can be applied here
| where timestamp > ago(1d)
| where client_Type == "Browser" ;
// calculate average pageView duration for all pageViews
dataset
| summarize avg(duration) by bin(timestamp, timeGrain)
| extend pageView='Overall'
// render result in a chart
| render timechart

앱을 사용하여 원격 분석 디자인

앱의 각 기능을 설계할 때 사용자와의 성공을 측정하는 방법을 고려합니다. 기록해야 하는 비즈니스 이벤트를 결정하고 해당 이벤트에 대한 추적 호출을 처음부터 앱에 코딩합니다.

A | B 테스트

어떤 기능 변형이 더 성공적인지 잘 모르는 경우 둘 다 릴리스하고 다른 사용자가 각 변형에 액세스하도록 합니다. 각 변형의 성공을 측정한 다음, 통합 버전으로 전환합니다.

이 기술에서는 사용자 앱의 각 버전이 전송한 모든 원격 분석에 고유 속성 값을 연결합니다. 활성화된 TelemetryContext에서 속성을 정의하여 수행할 수 있습니다. 이러한 기본 속성은 애플리케이션에서 보낸 모든 원격 분석 메시지에 포함됩니다. 여기에는 사용자 지정 메시지와 표준 원격 분석이 모두 포함됩니다.

Application Insights 포털에서 속성 값에 대한 데이터를 필터링하고 분할하여 다른 버전을 비교할 수 있습니다.

이 단계를 수행하려면 원격 분석 이니셜라이저를 설정합니다.

    // Telemetry initializer class
    public class MyTelemetryInitializer : ITelemetryInitializer
    {
        // In this example, to differentiate versions, we use the value specified in the AssemblyInfo.cs
        // for ASP.NET apps, or in your project file (.csproj) for the ASP.NET Core apps. Make sure that
        // you set a different assembly version when you deploy your application for A/B testing.
        static readonly string _version = 
            System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
            
        public void Initialize(ITelemetry item)
        {
            item.Context.Component.Version = _version;
        }
    }

ASP.NET Core 애플리케이션의 경우 Program.cs 클래스의 종속성 주입 서비스 컬렉션에 새 원격 분석 이니셜라이저를 추가합니다.

using Microsoft.ApplicationInsights.Extensibility;

builder.Services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();

다음 단계