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="*"/>
それは魅力的に機能しました!ありがとうたくさんの友達! – Sushil
ありがとう – pkudel4