Vue.js 를 통해서 SPA의 형태로 만든 사이트에 GTM(google tag manager)을 설치해달라는 요청이 들어왔다.
스크립트 코드가 메일로 전달 됐기 때문에 아무 생각없이 /public/index.html
에 추가하면 될거라 생각했던건 경기도 오산시였다.
처음엔 위에 방법으로 추가한 후에 배포를 했다.
그러나 GA가 활성화가 안된다는 연락이 온 것이다.
그래서 찾아보니 Vue.js에서는 vue-gtag
를 쓰는것을 확인했다. [공식]
설치 방법
npm install --save vue-gtag // 공식click
// main.js
import VueGtag from 'vue-gtag';
Vue.use(
VueGtag,
{
config: {
id: 추적ID,
},
},
);
이렇게 설치를 끝내고 배포한 뒤에 확인해보니 으잉?
사용자 인입만 추적되고 그 이후 페이지 이동은 추적이 되지 않는 것(issue) 이다.
여기서 중요한게 있다.
해당 프로젝트는 단일 페이지(SPA)
의 형태이기 때문에 router
를 이용해서 페이지를 그려준다.
그렇기 때문에 router가 갱신될 때마다 해당 추적을 보내야하는 것이다.
저 위의 코드에 몇가지를 더 추가하면 된다.
// main.js
import router from '@/router/index.js';
import VueGtag from 'vue-gtag';
Vue.use(
VueGtag,
{
config: {
id: 추적ID,
params: {
send_page_view: false,
},
},
},
router
);
위의 코드처럼 router가 추가되어야만 페이지 이동시에 page_view를 가져갈 수 있다.
어라? 처음엔 적지 않은 파라미터가 보인다. 이는 아래와 같다.
send_page_view : config 코드를 로드시에 해당 페이지를 전송 유무 (false/ default : true)
해당 속성을 통해서 SPA 에서 초기 진입시 페이지를 카운팅하지 않고
라우터에서만 page_view를 카운팅하는 것을 위해 필요하다. (설정하지 않으면 두개의 사용자로 찍힘)
* Tip
정말 해당 관련해서 google에 있는 페이지들은 다 본거같다.
계속해서 인입처리만 되고, 페이지 이동시 갱신이 되지 않아서 애널리틱스 관리자 사이트
에서 확인해본 결과..
추적 ID
가 다른 것을 확인했다.
해당 아이디를 변경해준 후로는 정상적으로 위의 코드대로 작동한다.
이는 GTM으로 설치된게 아니라 GA로 설치된 점을 알 수 있다. (아이디를 확인해볼 것)
'FRONT > Vue.js' 카테고리의 다른 글
데이터 전달 방식 (0) | 2021.09.08 |
---|---|
Vue에서 상태관리란? Vuex로 정리하기 (0) | 2021.07.27 |
해시태그 컴포넌트 만들기 (Hashtags component) (2) | 2021.07.23 |
유효성 검증을 위한 vee-validate 플러그인 (0) | 2021.07.15 |
vue에서 textarea의 줄바꿈 글을 표현할 때 (0) | 2021.07.15 |