我正在使用phonegap 3.3在本地构建Android应用程序并尝试使用GA插件
我已经使用
安装了GApluginphonegap local plugin add https://github.com/phonegap-build/GAPlugin.git
在我的索引中添加了此代码。
var gaPlugin;
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
alert("calling ga");
gaPlugin = window.plugins.gaPlugin;
alert("calling init")
gaPlugin.init(successHandler, errorHandler, "UA-48220634-1", 1);
gaPlugin.trackPage( nativePluginResultHandler, nativePluginErrorHandler, "index.html");
gaPlugin.trackEvent( nativePluginResultHandler, nativePluginErrorHandler, "Button", "Click", "event only", 1);
gaPlugin.exit(nativePluginResultHandler, nativePluginErrorHandler);
}
function successHandler()
{
alert("init success");
}
function errorHandler()
{
alert("init failed");
}
function nativePluginResultHandler()
{
alert("tracking success");
}
function nativePluginErrorHandler()
{
alert("tracking failed");
}
我收到了所有成功的消息,但无法在Google Analytics中看到任何内容。
我也尝试手动包含GAPlugin.js但没有变化。
我可以在插件列表中看到GAPlugin
Anujs-MacBook-Pro:my-app edunewz$ phonegap plugin list
[phonegap] com.adobe.plugins.GAPlugin
[phonegap] com.jamiestarke.webviewdebug
[phonegap] org.apache.cordova.camera
[phonegap] org.apache.cordova.file
[phonegap] org.apache.cordova.file-transfer
[phonegap] org.apache.cordova.inappbrowser
任何人都可以帮助我。
答案 0 :(得分:4)
进入/platforms/android/AndroidManifest.xml并确保
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
在场。
执行:
phonegap local plugin add https://github.com/phonegap-build/GAPlugin.git
phonegap local plugin add https://github.com/apache/cordova-plugin-network-information.git
phonegap local plugin add https://github.com/apache/cordova-plugin-geolocation.git
我还补充说:
<gap:plugin name="com.adobe.plugins.gaplugin" />
<gap:plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager" />
<gap:plugin name="Geolocation" value="org.apache.cordova.GeoBroker" />
到config.xml。
确保将/plugins/com.adobe.plugins.GAPlugin/www中的GAPlugin.js复制+粘贴到您的/ www文件夹中。
以下发布的代码来自:https://github.com/shanabus/phonegapbuildtest/blob/master/Index.html
大部分都是额外的,因为他在实际应用中显示了工作反馈。
<script src="GAPlugin.js"></script>
<script type="text/javascript" charset="utf-8">
//var baseUrl = 'http://grappsmobile.com/grtv/';
$(function() {
// on exit
// gaPlugin.exit(nativePluginResultHandler, nativePluginErrorHandler);
});
var gaPlugin;
document.addEventListener("deviceready", myDeviceReadyListener, false);
function myDeviceReadyListener() {
gaPlugin = window.plugins.gaPlugin;
gaPlugin.init(gaSuccess, gaError, "UA-23823097-4", 10);
//23823097-4 <-- web property
//23823097-3 <-- app property
}
function gaSuccess() {
try
{
gaPlugin.trackPage( nativePluginResultHandler, nativePluginErrorHandler, "index.html");
$("#gaResults").html("<span class='success'>GA tracked pageview!</span>");
$("#pageHome ul li a").off("click").on("click", function() {
gaPlugin.trackPage( nativePluginResultHandler, nativePluginErrorHandler, $(this).attr("href") );
});
} catch (e) {
$("#gaResults").html("<span class='error'>GA could not track pageview - " + e + "</span>");
}
}
function gaError() {
$("#gaResults").append("<span class='error'>GA error</span>");
}
function nativePluginResultHandler(obj) {
$("#gaResults").append("<br /><span class='warn'>GA Plugin Result - ");
if (obj != undefined) {
$("#gaResults").append(obj);
}
$("#gaResults").append("</span>");
}
function nativePluginErrorHandler() {
$("#gaResults").append("<span class='error'>GA Plugin Error Result</span>");
}
</script>
确保您使用的是移动应用分析,而不是像上面的代码段中那样使用网络分析。
观察他是如何跟踪这些事件的(我从中学到了很多): https://github.com/shanabus/phonegapbuildtest/search?q=gaPlugin.trackEvent
使用插件的示例来了解如何完成VariableButtonClicked,PageButtonClicked,TrackButtonClicked。 https://github.com/bobeast/GAPlugin/blob/master/Example/index.html示例代码对我来说从未开箱即用,所以只需将其用作参考。
在https://www.google.com/analytics/web/?hl=en#realtime/下查看并祈祷。有时需要很长时间才能显示,所以在开始排除故障前一天给它。其余的分析数据就像24小时后一样,所以如果你想在1-5小时后查看数据,请选择当天...有时候更长。
有些人可能会说这些额外的步骤是矫枉过正的,他们是对的......但是在我为它工作之前我必须对它们进行一些组合。奇怪的是,我觉得我要留下一些东西。祝你好运!
答案 1 :(得分:0)
在我的案例中,缺少网络信息插件:
cordova plugin add org.apache.cordova.network-information