본문으로 건너뛰기
버전: 4.6.2-saas

Web/JavaScript 에이전트 FAQ

Q. 초기화 코드를 삽입해야 하는 HTML이 너무 많아요.

A. 에이전트를 적용해야 하는 HTML에 공통적으로 삽입되는 자바스크립트가 있다면 해당 자바스크립트에서 스크립트가 실행되도록 할 수 있습니다.

HTML

<html>
<head>
...
<script src="./netfunnel.js" defer></script>
...
</head>
</html>

NetFUNNEL.JS

var scriptNF = document.createElement("script");
scriptNF.setAttribute("data-nf-client-id", "{{CLIENT_ID}}");
scriptNF.src = "{{AGENT_URL}}";
document.head.appendChild(scriptNF);

Q. 넷퍼넬 함수에서 에러가 발생해요.

A. 넷퍼넬에서 제공하는 시작 함수, 종료 함수는 에이전트 파일이 정상적으로 다운로드된 이후에 실행되어야 합니다.

관련 함수들이 정의되기 전에 호출될 경우, 함수가 정의되지 않았다는 오류가 발생할 수 있습니다.

아래와 같이 페이지가 로드된 이후에 넷퍼넬 함수가 실행되도록 해주세요.

window.addEventListener('load', function () {
nfStart({
projectKey: "{{PROJECT_KEY}}",
segmentKey: "{{SEGMENT_KEY}}",
}, function() {
nfCallback()
}
);
});

Q. 넷퍼넬 함수에서 타입 에러가 발생해요.

넷퍼넬에서 제공하는 시작 함수, 종료 함수는 window 객체에 할당합니다. 따라서 타입스크립트의 경우 window 객체에 넷퍼넬 관련된 타입을 추가해야 합니다. 루트 또는 src에 global.d.ts 파일을 생성하거나 글로벌 타입을 선언하는 파일에 아래 코드를 추가해주세요.

global.d.ts

interface Window {
Netfunnel: {
devtoolsAddListener: (callback: (isOpen: boolean) => void) => void;
devtoolsLaunch: () => void;
};
NFStart: (options: { projectKey: string; segmentKey: string }, callback?: (response: any) => void) => void;
nfStart: (options: { projectKey: string; segmentKey: string }, callback?: (response: any) => void) => void;
NFStartSection: (options: { projectKey: string; segmentKey: string }, callback?: (response: any) => void) => void;
nfStartSection: (options: { projectKey: string; segmentKey: string }, callback?: (response: any) => void) => void;
NFStop: (options: { projectKey: string; segmentKey: string }, callback?: (response: any) => void) => void;
nfStop: (options: { projectKey: string; segmentKey: string }, callback?: (response: any) => void) => void;
NFStopSection: (options: { projectKey: string; segmentKey: string }, callback?: (response: any) => void) => void;
nfStopSection: (options: { projectKey: string; segmentKey: string }, callback?: (response: any) => void) => void;
getNetfunnelVersion: () => string;
}