analytics.js 작동 방식

analytics.js로 측정해야 하는 대부분의 작업은 ga() 명령어 대기열을 사용하여 수행할 수 있습니다. 이 가이드에서는 명령어 대기열의 정의, 작동 방식, 명령어를 실행하여 사용자 상호작용을 측정하는 방법을 설명합니다.

ga 명령어 큐

Google 애널리틱스 태그는 '명령어 큐'라는 전역 ga 함수를 정의합니다. 이 메서드는 명령어 큐라고 불리는데, 이 메서드는 즉시 수신하는 명령어를 실행하는 대신 analytics.js 라이브러리가 완전히 로드될 때까지 실행을 지연시키는 큐에 추가합니다.

자바스크립트에서 함수도 객체이므로 속성을 포함할 수 있습니다. Google 애널리틱스 태그는 ga 함수 객체의 q 속성을 빈 배열로 정의합니다. analytics.js 라이브러리가 로드되기 전에 ga() 함수를 호출하면 ga() 함수로 전달된 인수 목록이 q 배열의 끝에 추가됩니다.

예를 들어 Google 애널리틱스 태그를 실행한 후 즉시 ga.q의 콘텐츠를 콘솔에 로깅하면 다음과 같은 2개 인수의 집합이 ga() 함수:

console.log(ga.q);

// Outputs the following:
// [
//   ['create', 'UA-XXXXX-Y', 'auto'],
//   ['send', 'pageview']
// ]

analytics.js 라이브러리가 로드되면 ga.q 배열의 콘텐츠를 검사하고 각 명령어를 순서대로 실행합니다. 그런 다음 ga() 함수가 다시 정의되므로 모든 후속 호출이 즉시 실행됩니다.

이 패턴을 사용하면 개발자가 analytics.js 라이브러리의 로드 완료 여부에 관해 걱정할 필요 없이 ga() 명령어 큐를 사용할 수 있습니다. 이 라이브러리는 비동기 코드의 대부분을 추상화하는 단순한 동기식 인터페이스를 제공합니다.

큐에 명령어 추가

ga() 명령어 대기열의 모든 호출은 공통 서명을 공유합니다. 첫 번째 매개변수인 'command'는 특정 analytics.js 메서드를 식별하는 문자열입니다. 추가 매개변수는 이 메서드에 전달되는 인수입니다.

특정 명령어가 참조하는 메서드는 다음과 같은 전역 메서드일 수 있습니다.create ,ga 객체 또는 다음에서 인스턴스 메서드일 수 있습니다.추적기 객체 예:send 에서 확인할 수 있습니다. ga() 명령어 대기열이 인식하지 못하는 명령어를 수신하면 무시하면 ga() 함수가 매우 안전하게 호출됩니다. 오류가 발생하지 않습니다.

명령어 대기열을 통해 실행할 수 있는 모든 명령어의 전체 목록은 ga() 명령어 대기열 참조를 확인하세요.

명령어 매개변수

대부분의 analytics.js 명령어 (및 해당 명령어)는 다양한 형식의 매개변수를 허용합니다. 이는 흔히 사용되는 필드를 특정 메서드에 더 쉽게 전달할 수 있도록 편의를 위한 것입니다.

예를 들어 Google 애널리틱스 태그의 두 명령어를 가정해 보겠습니다.

ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');

첫 번째 명령어에서 create는 선택적으로 trackingId, cookieDomain, name 필드를 허용합니다. 는 두 번째, 세 번째, 네 번째 매개변수로 각각 지정됩니다. send 명령어는 선택적 hitType 두 번째 매개변수를 허용합니다.

모든 명령어는 필드를 지정하는 데 사용할 수 있는 최종 fieldsObject 매개변수도 허용합니다. 예를 들어 태그의 위의 두 명령어는 다음과 같이 다시 작성될 수 있습니다.

ga('create', {
  trackingId: 'UA-XXXXX-Y',
  cookieDomain: 'auto'
});
ga('send', {
  hitType: 'pageview'
});

각 명령어에 허용되는 선택적 매개변수의 전체 목록은 ga() 명령어 대기열 참조를 확인하세요.

다음 단계

이 가이드를 읽고 analytics.js로 명령어를 실행하는 방법과 명령어 대기열의 작동 방식을 숙지하고 있을 것입니다. 다음 가이드에서는 추적 도구 객체를 만드는 방법을 설명합니다.