2017-03-23 25 views
2

ionic2/cordovaで構築されたAndroidモバイルアプリでGoogleタグマネージャを統合する際に問題があります。ウェブブラウザでionic serveを実行するとすべて正常に動作しますが、ネイティブビルドに問題があります。AndroidのGoogleタグマネージャーcordova

のiOS:

最初は動作しませんでしたが、https://github.com/driftyco/cordova-plugin-wkwebview-engineプラグインを追加した後、グーグル・アナリティクスは、トラフィックを受信し始めました。だから、この1つは解決され、必要なときに動作します。

アンドロイドは:

アプリを実行するとChromeコンソールを使用して、それをデバッグした後、すべてのエラーがありません。 dataLayer変数が利用可能で、データをその変数にプッシュできます。また、特定のイベントに対してトリガーが発生していない場合に有効な応答trueを返し、適切なタイプのイベントを使用するとfalseを返します。したがって、GTMはすべてを正しく認識しているようです。ネットワークタブでは、dataLayerにオブジェクトをプッシュした後、デスクトップ/ iOSの両方が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> 

そして、それは私がdataLayer変数使用してGTMとの通信方法は次のとおりです。私はすでに追加したコルドバのconfig.xmlにさらに

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

    dataLayer.push(event); 

は:

<access origin="*"/> 

答えて

3

私は自分の質問に答えるつもりです。この問題を解決するには、GTMのユニバーサルアナリティクスタグを調整するだけです。

Universal Analytics tag configuration

セット:

  • checkProtocolTasknone
  • clientIdから
  • storagenullには(ストレージはnoneとして)クッキーなしでユーザを識別するために使用されます。私はDevice UUIDという名前の新しいJavascript変数を作成しました。この変数は、単にデバイス識別子であるグローバル変数device.uuidを指しています。

これらの変更後、すべてが正しく記録されます。

+0

それは魅力的に機能しました!ありがとうたくさんの友達! – Sushil

+0

ありがとう – pkudel4

関連する問題