2

ionic2/cordova로 만든 Android 모바일 앱에 Google 태그 관리자를 통합하는 데 문제가 있습니다. 웹 브라우저에서 ionic serve을 실행하면 모든 것이 올바르게 작동하지만 기본 빌드에는 문제가 있습니다.Android의 Google 태그 관리자 cordova

아이폰 OS는 :

그것은 처음에는 작동하지 않았다, 그러나 https://github.com/driftyco/cordova-plugin-wkwebview-engine 플러그인을 추가 한 후, 구글 분석은 트래픽을 수신하기 시작했다. 그래서 이것은 해결되어 져야합니다.

안드로이드 :

응용 프로그램을 실행하고 크롬 콘솔을 사용하여 디버깅 후 전혀 오류가 없습니다. dataLayer 변수를 사용할 수 있으며 데이터를 입력 할 수 있습니다. 또한 주어진 이벤트에 대해 트리거가 실행되지 않은 경우 유효한 응답 true을 반환하고 적절한 유형의 이벤트를 사용할 때 false을 반환합니다. 그래서 GTM이 모든 것을 제대로 인식하고있는 것처럼 보입니다. 네트워크 탭에서 데스크톱/iOS가 dataLayer에 개체를 푸시 한 후 https://www.google-analytics.com/collect?v=1&_v=j49&a=1838345933&t=pageview&[moredatahere]에 요청을 보내고 있지만 Android 앱이 아무 것도 보내지 않는 것으로 나타났습니다 (네트워크 탭에는 아무 것도 보내지 않음). 왜 그런지 궁금한가요? Android에 GA에 대한 요청이없는 이유는 무엇입니까?

여기 내 index.html 파일입니다 :

<!DOCTYPE html> 
<html lang="en" dir="ltr"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Ionic App</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> 
    <meta name="format-detection" content="telephone=no"> 
    <meta name="msapplication-tap-highlight" content="no"> 

    <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico"> 
    <link rel="manifest" href="manifest.json"> 
    <meta name="theme-color" content="#4e8ef7"> 

    <!-- Google Tag Manager --> 
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 
    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 
    })(window,document,'script','dataLayer','GTM-5CH5MGN');</script> 
    <!-- End Google Tag Manager --> 

    <!-- cordova.js required for cordova apps --> 
    <script src="cordova.js"></script> 

    <link href="build/main.css" rel="stylesheet"> 

</head> 
<body> 
    <!-- Google Tag Manager (noscript) --> 
    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KMJLK35" 
    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 
    <!-- End Google Tag Manager (noscript) --> 

    <!-- Ionic's root component and where the app will load --> 
    <ion-app></ion-app> 

    <!-- The polyfills js is generated during the build process --> 
    <script src="build/polyfills.js"></script> 

    <!-- The bundle js is generated during the build process --> 
    <script src="build/main.js"></script> 

</body> 
</html> 

그리고 내가 GTM은 dataLayer 변수를 사용하여 통신하는 방법은 다음과 같습니다 이미 추가 한 코르도바의 Config.xml의 추가

let event = { 
     event: 'virtualpageview', 
     pagepath: url, 
     pagetitle: title 
    }; 

    dataLayer.push(event); 

를 :

<access origin="*"/> 

답변

3

나는 내 자신의 질문에 대답 할 것입니다. 이 문제를 해결하려면 GTM에서 유니버설 애널리틱스 태그를 조정하기 만하면됩니다.

Universal Analytics tag configuration

설정 :

  • checkProtocolTasknone
  • clientId-
  • storagenull로는 (보관이 아무도 없기 때문에) 쿠키없이 사용자를 식별하는 데 사용됩니다. 나는 간단하게 장치 식별자 인 글로벌 변수 device.uuid을 가리키는 Device UUID이라는 새로운 Javascript 변수를 만들었습니다.

이러한 변경 사항이 모두 올바르게 기록됩니다.

+0

그것은 매력처럼 작동했습니다! 고마워 친구! – Sushil

+0

감사합니다. – pkudel4

관련 문제