비밀번호

커뮤니티2

  • 맑음속초-8.3맑음북춘천-12.1맑음철원-12.5맑음동두천-12.2맑음파주-13.4맑음대관령-16.1맑음춘천-11.0맑음백령도-8.1맑음북강릉-8.7맑음강릉-7.6맑음동해-7.2맑음서울-10.6맑음인천-10.3맑음원주-10.6눈울릉도-3.9맑음수원-10.3맑음영월-10.7맑음충주-9.7구름많음서산-7.9맑음울진-7.2맑음청주-9.3구름많음대전-8.5맑음추풍령-9.7맑음안동-8.9맑음상주-8.4맑음포항-6.0맑음군산-7.8맑음대구-6.2맑음전주-8.1맑음울산-6.2맑음창원-5.3구름많음광주-6.1맑음부산-5.1맑음통영-4.8눈목포-4.3맑음여수-5.8구름많음흑산도-2.5흐림완도-3.3구름많음고창-5.7구름많음순천-7.7눈홍성-8.3맑음서청주-9.9눈제주0.2구름많음고산-0.7흐림성산-1.9눈서귀포-1.3맑음진주-5.4맑음강화-10.4맑음양평-9.8맑음이천-10.6맑음인제-11.0맑음홍천-10.7맑음태백-13.6맑음정선군-11.5맑음제천-10.7맑음보은-9.0맑음천안-9.8구름많음보령-7.3구름많음부여-7.7맑음금산-8.2구름많음세종-8.9구름많음부안-7.1맑음임실-7.9흐림정읍-7.4구름많음남원-7.5구름많음장수-10.0흐림고창군-7.0구름많음영광군-5.0맑음김해시-6.0구름많음순창군-7.2맑음북창원-5.1맑음양산시-4.2구름많음보성군-5.7흐림강진군-4.2구름많음장흥-5.6흐림해남-3.9맑음고흥-5.4맑음의령군-6.8맑음함양군-6.8맑음광양시-6.5흐림진도군-3.6맑음봉화-11.1맑음영주-9.5맑음문경-9.3맑음청송군-9.6맑음영덕-7.4맑음의성-7.5맑음구미-7.2맑음영천-7.1맑음경주시-6.4맑음거창-8.1맑음합천-5.0맑음밀양-5.6맑음산청-6.8맑음거제-4.2맑음남해-4.2맑음북부산-5.1
  • 2026.02.08(일)

구글태그매니저[Google Tag Manager] 구글태그매니저 커뮤니티입니다.

앱 태깅 과정에서 웹 페이지에서의 GTM 스니펫과 Javascript_handler.js의 삽입 순서

안녕하세요. 오늘은 앱 태깅 과정에서 웹 사이트에 GTM 스니펫과 Javascript_handler.js의 삽입 순서를 알아보도록 하겠습니다. 이를 파악하려면 먼저 구글 태그 매니저에서 사용하는 탬플릿의 코드와 Javascript_handler.js와의 관계를 알아야 합니다.

스크린샷 2024-10-16 오후 4.14.45.png

앱을 태깅하는 방법은 여러가지가 있으나, pluszero에서는 GTM 샌드박스 형태의 자바스크립트 코드로 만들어진 자체 템플릿을 사용하여 진행합니다. GA4 for javascript interface라는 이름을 가진 템플릿을 사용하여 태그를 제작하고, 해당 태그가 발동하면 템플릿의 코드가 실행되서 웹 사이트에 삽입된 javascript_handler.js 코드를 통해 앱 프로젝트의 네이티브 영역에 삽입된 AnalyticsWebInterface, controller function 코드를 작동시키고 최종적으로 GA4에 데이터가 전송됩니다.

 

그렇다면 웹 사이트에 javascript_handler를 삽입할때, 어느 위치에 삽입하여야 할까요? 웹 사이트에서 GTM을 사용할 수 있게 해주는 GTM 스니펫 보다 먼저 삽입되어야 할까요, 나중에 삽입되어야 할까요?


스크린샷 2024-10-16 오후 4.25.05.png

 

결론 부터 말씀드리자면, javascript_handler는 GTM 스니펫보다 먼저 삽입하는 것이 안전합니다. 이유는 위에서 설명한 GA4 for javascript interface 템플릿의 코드 내용에 있습니다.

 

스크린샷 2024-10-16 오후 4.30.59.png

 

사진은 GA4 for javascript interface 템플릿 코드의 일부 입니다. GTM 샌드박스형 javascript에서 제공하는 copyFromWindow라는 메소드를 사용하여, 웹 사이트에 삽입 되어져 window 함수로 미리 등록이 되어 있는 상태인  javascript_handler 코드의 메소드를 복사하여 해당 코드에서 사용하고 있습니다. 따라서 GA4 for javascript interface 템플릿 코드가 실행이 되기전, 즉 이벤트 태그가 발동이 되기 전에 javascript_handler의 웹 사이트 삽입이 보장 되어야만 하는것입니다. 

 

스크린샷 2024-10-16 오후 4.35.52.png

 

실제로 사진과 같이 코드에 setTimeout() 등과 같은 메소드를 사용하여 javascript_handler의 삽입을 늦춰 보면, 이벤트 수집이 제대로 되지 않는 것을 확인 할 수 있습니다. (해당 상황은 실 상황에서 다른 발생 가능한 이슈로 인해 javascript_handler의 삽입이 늦어지는 경우라고 볼 수 있습니다.)

물론 javascript_handler가 GTM 스니펫보다 먼저 삽입이 되었으나 모종의 이유로 삽입이 지연된다면 똑같이 이벤트 수집이 제대로 되지 않을 수 있습니다. 따라서 다른 발생 가능한 이슈를 잘 고려하여 javascript_handler를 삽입해야 하며, GTM 스니펫보다 명시적으로 먼저 삽입하는 것으로 기본적인 절차를 수행 할 수 있습니다.

 

또한 javascript_handler를 웹 사이트에 직접 삽입하지 않고, GTM의 맞춤 태그를 사용하여 삽입하는 방법이 있습니다. 이 경우에도 javascript_handler의 발동 타이밍을 고려해주어야 합니다.



스크린샷 2024-10-16 오후 5.01.27.png

 

javascript 코드를 사용하기 위해서 [맞춤 HTML] 태그 유형으로 태그를 제작후 javascript_handler의 내용을 삽입 한 뒤, 트리거를 설정 가능한 가장 빠른 트리거로 설정해줍니다. (예시에서는 초기화 트리거 사용) 또한 다른 어떤 이벤트 태그 보다 발동을 우선시 하기 위해서 [태그 실행 우선순위] 설정을 높혀줍니다. 해당 설정은 숫자가 높을 수록 태그 발동의 우선순위를 높혀주는 설정입니다.

이와 같은 설정으로 javascript_handler를 담은 해당 태그의 발동을 모든 다른 이벤트 태그들의 발동보다 먼저 되도록 보장해주어야 합니다.

 

감사합니다. 

전체댓글0

검색결과는 총 13건 입니다.    글쓰기
1