2017-12-24 12 views
0

내 웹 페이지에 iframe이 있습니다. 이 iframe에는 많은 선택 항목이있는 양식이 들어 있습니다. 로드 시간을 줄이기 위해 document.ready 뒤에 jquery를 사용하여이 iframe을로드합니다. 이제 양식의 단추를 클릭하면 추적 할 싶어요. 웹 페이지에서 Google 애널리틱스로 이벤트 추적하기는 가능하지만 양식의 이벤트를 추적하려면 analytics.js를 iframe에로드 된 파일에도 포함해야합니다.이벤트 추적 : analytics.js 이중로드를 방지하는 방법

문제 : iframe 이벤트 추적이 작동하지만 analytics.js가 두 번로드되고 모든 페이지 요청이 두 번 계산됩니다.

이 문제를 해결하기 위해 analytics.js가 이미로드되어 있는지 확인하여 이중로드를 방지하지만 시간 제한을 짧게 설정해야합니다. 타임 아웃은 모든 사용자의 사용 가능한 대역폭에 따라 다르며 모든 사용자에 대해 고정되어 있지 않습니다. document.ready에도 동일하게 적용됩니다. JQuery와는

그래서 어떻게 더블 로딩은 analytics.js없이 iframe이 이벤트를 추적 할 수 있습니다 document.ready 후로드되어 있기 때문에

추적 코드는 html 파일에 포함 할 수없는 이유는 무엇입니까?

+0

GA 코드는 분석 라이브러리를 두 번로드하지 않습니다 (또는 적어도 디버거가 말한 것입니다 -이를 방지하는 기본 제공 기능이있는 것으로 보입니다). 또한 브라우저는 동일한 파일을 캐싱하는 데 능숙하므로 영향이 얼마나 클지 확신 할 수 없습니다. –

답변

0

두 번로드하기 때문에 analytics.js 파일에 문제가 있음을 확인했습니다. 귀하의 질문에 대답하기 위해 몇 가지 요령을 제시하고자합니다.

Google 애널리틱스는 데이터를 어떻게 수집합니까?

Google 웹 로그 분석 보고서에 모든 정보를 제공하기 위해 사용하는 데이터는 이러한 소스에서 유래 : 사용자의

HTTP 요청 browser/system 정보는 First-party cookies

또 다른 점은, document.ready()은 전체 문서가로드 될 때까지 스크립트가 실제로로드되지 않도록합니다. 그러므로 다음과 같은 조치를 취할 것을 권합니다. 완벽하게 작동해야합니다.

  • html의 본문 닫기 태그 바로 앞에 analytics.js 파일을 놓습니다.
    <script src="analytics.js"></script> </body>
  • document.ready() 함수를 제거하고 내부 스크립트를 분석 스크립트 태그 바로 앞에 배치하십시오.

이렇게하면 다시로드하지 않고 스크립트를 다시로드하지 않고 효과적으로 실행할 수 있습니다.

추신. 작동하지 않으면 코드를보고 싶습니다. 그러나 완벽하게 작동해야합니다.