phonegap-build / gaplugin Goto Github PK
View Code? Open in Web Editor NEWThis project forked from bobeast/gaplugin
Google Analytics Plugin
License: MIT License
This project forked from bobeast/gaplugin
Google Analytics Plugin
License: MIT License
Do we need to manually track each pageview (Screens in GA) ? They are not visible in google analytics' reports.
Any word on when the Google Analytics plugin will be updated to the GA v3 SDK? A lot of valuable features in there...
Hi,
Simple question: should this plugin also work in a Android PhoneGap project build in Eclipse instead of PhoneGap Build?
I try to get this plugin to work for PhoneGap Android, but I don't see anything in Google Analytics. This is what I've done:
Did I made a mistake somewhere? Or is this plugin only suitable for PhoneGap Build?
Regards, Leonard
PS. I'm using PhoneGap 2.5, on Eclipse, on Windows 7.
Everything seemed ok until I updated xcode to v6 release.
When I successfully build my app with cordova, and try to run an xcode project in iOS Simulator, after linker phase I've got the following error
ld: warning: ignoring file /Users/dimitrishchurov/Projects/sb-mobile/src/platforms/ios/SchoolBee/Plugins/com.adobe.plugins.GAPlugin/GoogleAnalytics.a, missing required architecture x86_64 in file /Users/dimitrishchurov/Projects/sb-mobile/src/platforms/ios/SchoolBee/Plugins/com.adobe.plugins.GAPlugin/GoogleAnalytics.a (3 slices)
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_GAI", referenced from:
objc-class-ref in GAPlugin.o
ld: symbol(s) not found for architecture x86_64
XCode settings are set to default. cordova version is 3.5.0-0.2.7
,
On iOS 7.0.3, calling window.plugins.gaPlugin.trackEvent() if the final variable has a value of undefined. I discovered this as I have a wrapper function for this call in order to allow me to use the same code base on the web with the Google Analytics web SDK.
For example:
function pg_track_event(hit, action, label, value) {
window.plugins.gaPlugin.trackEvent(
// result handler
function() {
alert("trackEvent success");
},
// error handler
function(err) {
alert("trackEvent error");
}, hit, action, label, value);
}
// typeof some_object.foo === 'undefined'
pg_track_event("event", "click", "my-label", some_object.foo);
While one could argue that sending an undefined value to this function isn't a best practice and checking values before they go off to GA is a good idea (and it is!) it's still a little brittle to have the whole app crash if an undefined value gets through.
Running Cordova 3.4, this plugin works fine on iOS < 7.1. Then when I make the necessary changes to cordova for iOS 7.1:
http://shazronatadobe.wordpress.com/2014/03/12/xcode-5-1-and-cordova-ios/
I start running into this error:
Undefined symbols for architecture arm64: "_OBJC_CLASS_$_GAI", referenced from: objc-class-ref in GAPlugin.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
I've tried the fixes suggested here:
http://stackoverflow.com/questions/13119578/google-analytics-library-ios
But they don't work
The plugin should be available at the cordova plugin registry (http://plugins.cordova.io/) to be easily installed using the command line tools.
Reference: http://cordova.apache.org/news/2013/10/21/cordova-registry.html
On Android only, if the eventValue argument is not an integer - the following error will occur:
"Value at 3 of type java.lang.String cannot be converted to long"
On iOS it works fine.
For example - this won't work:
google_analytics.trackEvent(google_analytics.success, google_analytics.error, 'login', 'started', '', '');
But this will:
google_analytics.trackEvent(google_analytics.success, google_analytics.error, 'login', 'started', '', 1);
I add all the plugins and .js in my app. But can't get tracking :-(
Would like the plugin to support GA SDK v3.
Your plugman installation doesn't work at all. Probably you have to modify your xml settings.
Hi,
I'm trying to use this plugin. Everything seems to work fine, I added an alert to all success callback. Init method fires success, trackPage fires success... but still there are no measures in analytic... nothing in "app overview", nothing in "real-time"...
I'm using PhoneGapBuild 3.5, and testing it without publishing to app/play store.
Currently I'm testing on Adroid 4.0.4
Does someone has an idea why is this happening?
I'm disheartened to see the changes from my pull request were not copied here to the "official" repo -- and they were just updates to the readme. I can't imagine how frustrating it must be for anyone who's contributed code.
The example app contains this comment:
// Note: A request for permission is REQUIRED by google. You probably want to do this just once, though, and remember the answer for subsequent runs.
I'm looking for this in the Google documentation for the mobile SDKs and I can't seem to find it (although I admit that I have not read the docs start-to-finish, so it may be hiding in there somewhere).
I'm also looking at the terms of service at http://www.google.com/analytics/terms/us.html and it's not there either.
Can you point to somewhere that makes this requirement explicit? (Maybe a link should be included in the example app comment?) Is it remotely possible that the comment is in error?
Hi thanks for that AWESOME pluging. Just one little thing, in my GA dashboard, for the "App Version" widget, it is picking up the build version (200 ATM) instead of the app version (1.1)...
Using PhoneGap Build, and been banging my head against a wall for hours. I'm sure I'm just being silly somewhere, but it seems so simple and I can't get it working at all.
My config.xml loads the plugin:
<gap:plugin name="com.adobe.plugins.gaplugin"/>
My app in PhoneGap Build shows the "3rd Party Plugin", so I think the plugin is included properly in my app.
com.adobe.plugins.gaplugin 2.1.5
My main index.html adds the phonegap.js and GAPlugin.js:
<script src="phonegap.js" id="phonegap_script"></script>
<script type="text/javascript" src="GAPlugin.js"></script>
PhoneGap seems to be loading fine, my app loads fine, but if I try and initialize the GAPlugin with even the first line, my app crashes.
var gaPlugin;
document.addEventListener('deviceready', deviceReady(), false);
function deviceReady() {
alert('device ready');
gaPlugin = window.plugins.gaPlugin;
}
I get the 'device ready' alert, and then crash. It looks to me like 'window.plugins.gaPlugin' is undefined, 'window.plugins' is undefined for that matter.
Seems like I can't make it past the first line of code, and I've tried a million different things. Ok, maybe not a million, but too many variations to mention.
Android 4.3 + 4.4, Cordova 3.4
10 seconds after running FileTransfer.upload plug-in, my app crashes. If I remove the GAPlugin or do not run the init function, my app does not crash. App was fine until I added the plug-in and it works fine on IOS.
Some testing results...
I don't read machine code, so hopefully this snippet can point me or someone in the right direction.
F/libc ( 6402): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 6516 (GAThread)
I/DEBUG ( 180): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 180): Build fingerprint: 'google/hammerhead/hammerhead:4.4.2/KOT49H/937116:user/release-keys'
I/DEBUG ( 180): Revision: '11'
I/DEBUG ( 180): pid: 6402, tid: 6516, name: GAThread >>> com.hiyu.android <<<
I/DEBUG ( 180): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
I/DEBUG ( 180): r0 00000000 r1 00000000 r2 4caba23d r3 00000028
I/DEBUG ( 180): r4 00000008 r5 4caba23e r6 00000000 r7 ffffffff
I/DEBUG ( 180): r8 00000001 r9 40a9f130 sl 00000028 fp 4caba23d
I/DEBUG ( 180): ip 45fd6b34 sp 51cb13f8 lr 45fcb09d pc 40a89f2e cpsr 600f0030
I/DEBUG ( 180): d0 0000000000000000 d1 0000000000000000
I/DEBUG ( 180): d2 0000000000000000 d3 0000000000000000
I/DEBUG ( 180): d4 3268053561342f79 d5 796470730830312d
I/DEBUG ( 180): d6 64707306312e332f d7 7074746808332f79
I/DEBUG ( 180): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 180): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 180): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 180): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 180): d16 0000000000000000 d17 0000000000000000
I/DEBUG ( 180): d18 bbd6995585cb09b8 d19 3b4c0c382b81951f
I/DEBUG ( 180): d20 4156e36000000000 d21 4008000000000000
I/DEBUG ( 180): d22 3ff0000000000000 d23 4059000000000000
I/DEBUG ( 180): d24 3ff0000000000000 d25 0000000000000000
I/DEBUG ( 180): d26 4000000000000000 d27 547d42aea2879f2e
I/DEBUG ( 180): d28 0001000000010000 d29 0001000000010000
I/DEBUG ( 180): d30 4059000000000000 d31 4024000000000000
I/DEBUG ( 180): scr 60000012
I/DEBUG ( 180):
I/DEBUG ( 180): backtrace:
I/DEBUG ( 180): #00 pc 00026f2e /system/lib/libssl.so (SSL_select_next_proto+49)
I/DEBUG ( 180): #1 pc 00007099 /system/lib/libjavacrypto.so
I/DEBUG ( 180): #2 pc 0002f2f3 /system/lib/libssl.so (ssl_parse_serverhello_tlsext+434)
I/DEBUG ( 180): #3 pc 0001810d /system/lib/libssl.so (ssl3_get_server_hello+1004)
I/DEBUG ( 180): #4 pc 00017517 /system/lib/libssl.so (ssl3_connect+566)
I/DEBUG ( 180): #5 pc 00027ccb /system/lib/libssl.so (SSL_do_handshake+50)
I/DEBUG ( 180): #6 pc 0000aeb3 /system/lib/libjavacrypto.so
I/DEBUG ( 180): #7 pc 00464e34 /data/dalvik-cache/system@[email protected]
I/DEBUG ( 180):
I/DEBUG ( 180): stack:
I/DEBUG ( 180): 51cb13b8 068660c5
I/DEBUG ( 180): 51cb13bc 3dfceab7
I/DEBUG ( 180): 51cb13c0 00000002
I/DEBUG ( 180): 51cb13c4 45fcafd5 /system/lib/libjavacrypto.so
I/DEBUG ( 180): 51cb13c8 00000002
I/DEBUG ( 180): 51cb13cc 45fcafd5 /system/lib/libjavacrypto.so
I/DEBUG ( 180): 51cb13d0 00000003
I/DEBUG ( 180): 51cb13d4 40a59e64 /system/lib/libcrypto.so
I/DEBUG ( 180): 51cb13d8 400f61b8
I/DEBUG ( 180): 51cb13dc 40a59e64 /system/lib/libcrypto.so
I/DEBUG ( 180): 51cb13e0 509e8e70 [anon:libc_malloc]
I/DEBUG ( 180): 51cb13e4 400b8e6b /system/lib/libc.so (dlmalloc+4254)
I/DEBUG ( 180): 51cb13e8 00000003
I/DEBUG ( 180): 51cb13ec fbbaf7fc
I/DEBUG ( 180): 51cb13f0 400b7dcd /system/lib/libc.so (dlmalloc)
I/DEBUG ( 180): 51cb13f4 00000003
I/DEBUG ( 180): #00 51cb13f8 40a59e64 /system/lib/libcrypto.so
I/DEBUG ( 180): 51cb13fc 51cb1478 [stack:6516]
I/DEBUG ( 180): 51cb1400 51cb1474 [stack:6516]
I/DEBUG ( 180): 51cb1404 4caba23d [anon:libc_malloc]
I/DEBUG ( 180): 51cb1408 00000028
I/DEBUG ( 180): 51cb140c 4caba23d [anon:libc_malloc]
I/DEBUG ( 180): 51cb1410 4e492480 [anon:libc_malloc]
I/DEBUG ( 180): 51cb1414 51cb1474 [stack:6516]
I/DEBUG ( 180): 51cb1418 51cb1478 [stack:6516]
I/DEBUG ( 180): 51cb141c 4ca0cc68 [anon:libc_malloc]
I/DEBUG ( 180): 51cb1420 40a9f130 /system/lib/libssl.so
I/DEBUG ( 180): 51cb1424 00000028
I/DEBUG ( 180): 51cb1428 4caba239 [anon:libc_malloc]
I/DEBUG ( 180): 51cb142c 45fcb09d /system/lib/libjavacrypto.so
I/DEBUG ( 180): #1 51cb1430 00000000
I/DEBUG ( 180): 51cb1434 ffffffff
I/DEBUG ( 180): 51cb1438 4caba265 [anon:libc_malloc]
I/DEBUG ( 180): 51cb143c 51cb14b0 [stack:6516]
I/DEBUG ( 180): 51cb1440 51cb14b0 [stack:6516]
I/DEBUG ( 180): 51cb1444 4caba23d [anon:libc_malloc]
I/DEBUG ( 180): 51cb1448 00003374
I/DEBUG ( 180): 51cb144c 40a922f5 /system/lib/libssl.so (ssl_parse_serverhello_tlsext+436)
I/DEBUG ( 180): #2 51cb1450 00000028
I/DEBUG ( 180): 51cb1454 00000000
I/DEBUG ( 180): 51cb1458 40a9a5a5 /system/lib/libssl.so
I/DEBUG ( 180): 51cb145c 00000000
I/DEBUG ( 180): 51cb1460 00000001
I/DEBUG ( 180): 51cb1464 51cb14b4 [stack:6516]
I/DEBUG ( 180): 51cb1468 4caba261 [anon:libc_malloc]
I/DEBUG ( 180): 51cb146c 4caba265 [anon:libc_malloc]
I/DEBUG ( 180): 51cb1470 4ca0cc68 [anon:libc_malloc]
I/DEBUG ( 180): 51cb1474 4caeeae8 [anon:libc_malloc]
I/DEBUG ( 180): 51cb1478 40a57dc0 /system/lib/libcrypto.so
I/DEBUG ( 180): 51cb147c 4ca0cc68 [anon:libc_malloc]
I/DEBUG ( 180): 51cb1480 00000081
I/DEBUG ( 180): 51cb1484 4caba1e4 [anon:libc_malloc]
I/DEBUG ( 180): 51cb1488 4c7e50e0 [anon:libc_malloc]
I/DEBUG ( 180): 51cb148c 4caba207 [anon:libc_malloc]
I/DEBUG ( 180): ........ ........
I/DEBUG ( 180):
I/DEBUG ( 180): memory near r2:
I/DEBUG ( 180): 4caba21c 68ae6717 e05c3f40 c0ac0868 39000011
I/DEBUG ( 180): 4caba22c 010001ff 000b0000 01000304 00743302
I/DEBUG ( 180): 4caba23c 70730828 342f7964 68053561 30312d32
I/DEBUG ( 180): 4caba24c 64707308 2e332f79 70730631 332f7964
I/DEBUG ( 180): 4caba25c 74746808 2e312f70 00000031 00000000
I/DEBUG ( 180): 4caba26c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba27c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba28c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba29c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2ac 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2bc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2cc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2dc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2ec 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2fc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba30c 00000000 00000000 00000000 00000000
I/DEBUG ( 180):
I/DEBUG ( 180): memory near r5:
I/DEBUG ( 180): 4caba21c 68ae6717 e05c3f40 c0ac0868 39000011
I/DEBUG ( 180): 4caba22c 010001ff 000b0000 01000304 00743302
I/DEBUG ( 180): 4caba23c 70730828 342f7964 68053561 30312d32
I/DEBUG ( 180): 4caba24c 64707308 2e332f79 70730631 332f7964
I/DEBUG ( 180): 4caba25c 74746808 2e312f70 00000031 00000000
I/DEBUG ( 180): 4caba26c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba27c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba28c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba29c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2ac 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2bc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2cc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2dc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2ec 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2fc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba30c 00000000 00000000 00000000 00000000
I/DEBUG ( 180):
I/DEBUG ( 180): memory near r9:
I/DEBUG ( 180): 40a9f110 00000001 00000020 00000002 00000002
I/DEBUG ( 180): 40a9f120 00000105 0000c030 00000000 00000000
I/DEBUG ( 180): 40a9f130 00000001 40a9560f 0300c011 00000080
I/DEBUG ( 180): 40a9f140 00000001 00000004 00000002 00000002
I/DEBUG ( 180): 40a9f150 00000041 0000c030 00000080 00000080
I/DEBUG ( 180): 40a9f160 00000001 40a95621 0300c012 00000080
I/DEBUG ( 180): 40a9f170 00000001 00000002 00000002 00000002
I/DEBUG ( 180): 40a9f180 00000181 0000c030 000000a8 000000a8
I/DEBUG ( 180): 40a9f190 00000001 40a95638 0300c013 00000080
I/DEBUG ( 180): 40a9f1a0 00000001 00000040 00000002 00000002
I/DEBUG ( 180): 40a9f1b0 00000181 0000c030 00000080 00000080
I/DEBUG ( 180): 40a9f1c0 00000001 40a9564d 0300c014 00000080
I/DEBUG ( 180): 40a9f1d0 00000001 00000080 00000002 00000002
I/DEBUG ( 180): 40a9f1e0 00000181 0000c030 00000100 00000100
I/DEBUG ( 180): 40a9f1f0 00000001 40a95662 0300c015 00000080
I/DEBUG ( 180): 40a9f200 00000004 00000020 00000002 00000002
I/DEBUG ( 180):
I/DEBUG ( 180): memory near fp:
I/DEBUG ( 180): 4caba21c 68ae6717 e05c3f40 c0ac0868 39000011
I/DEBUG ( 180): 4caba22c 010001ff 000b0000 01000304 00743302
I/DEBUG ( 180): 4caba23c 70730828 342f7964 68053561 30312d32
I/DEBUG ( 180): 4caba24c 64707308 2e332f79 70730631 332f7964
I/DEBUG ( 180): 4caba25c 74746808 2e312f70 00000031 00000000
I/DEBUG ( 180): 4caba26c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba27c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba28c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba29c 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2ac 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2bc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2cc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2dc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2ec 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba2fc 00000000 00000000 00000000 00000000
I/DEBUG ( 180): 4caba30c 00000000 00000000 00000000 00000000
I/DEBUG ( 180):
I/DEBUG ( 180): memory near ip:
I/DEBUG ( 180): 45fd6b14 409ef6e1 409b3af9 409e5d21 409e59c5
I/DEBUG ( 180): 45fd6b24 409e670d 409de9cd 409e9d41 400bb021
I/DEBUG ( 180): 45fd6b34 40a89efd 400b67dc 400b68e0 409fd091
I/DEBUG ( 180): 45fd6b44 40a89775 40103927 400a43b1 4027c5b5
I/DEBUG ( 180): 45fd6b54 409f219d 409eaa49 409ea8b5 409ea851
I/DEBUG ( 180): 45fd6b64 409eadd9 409ecec9 400cd235 409ecea9
I/DEBUG ( 180): 45fd6b74 409ecf8d 400b5c01 400bb415 400b9ef5
I/DEBUG ( 180): 45fd6b84 4027c6f5 40a89f79 40a8ce9d 40a24bfd
I/DEBUG ( 180): 45fd6b94 409bd5f5 409bd6dd 40a24c45 409c0799
I/DEBUG ( 180): 45fd6ba4 409b6a29 409b925d 40a24385 40a17ef9
I/DEBUG ( 180): 45fd6bb4 409bf2f5 409c2a5d 409f2ad9 409c2b01
I/DEBUG ( 180): 45fd6bc4 409b2905 409f3135 409e2f01 409e3265
I/DEBUG ( 180): 45fd6bd4 409e2a5d 409e2c69 409e309d 409e29d9
I/DEBUG ( 180): 45fd6be4 409e2e8d 409fcf39 409e2e99 409e2e91
I/DEBUG ( 180): 45fd6bf4 409e2d6d 409f4839 409f473d 409f4b79
I/DEBUG ( 180): 45fd6c04 409b3b01 409e3365 409b19a1 409bcb61
I/DEBUG ( 180):
I/DEBUG ( 180): memory near sp:
I/DEBUG ( 180): 51cb13d8 400f61b8 40a59e64 509e8e70 400b8e6b
I/DEBUG ( 180): 51cb13e8 00000003 fbbaf7fc 400b7dcd 00000003
I/DEBUG ( 180): 51cb13f8 40a59e64 51cb1478 51cb1474 4caba23d
I/DEBUG ( 180): 51cb1408 00000028 4caba23d 4e492480 51cb1474
I/DEBUG ( 180): 51cb1418 51cb1478 4ca0cc68 40a9f130 00000028
I/DEBUG ( 180): 51cb1428 4caba239 45fcb09d 00000000 ffffffff
I/DEBUG ( 180): 51cb1438 4caba265 51cb14b0 51cb14b0 4caba23d
I/DEBUG ( 180): 51cb1448 00003374 40a922f5 00000028 00000000
I/DEBUG ( 180): 51cb1458 40a9a5a5 00000000 00000001 51cb14b4
I/DEBUG ( 180): 51cb1468 4caba261 4caba265 4ca0cc68 4caeeae8
I/DEBUG ( 180): 51cb1478 40a57dc0 4ca0cc68 00000081 4caba1e4
I/DEBUG ( 180): 51cb1488 4c7e50e0 4caba207 40a9f130 00000020
I/DEBUG ( 180): 51cb1498 00001110 40a7b111 51cb14b0 51cb14ac
I/DEBUG ( 180): 51cb14a8 4ca0cc68 00000001 4e492480 4caba22a
I/DEBUG ( 180): 51cb14b8 4ca0cc68 00001120 4e492480 45fcb1fd
I/DEBUG ( 180): 51cb14c8 00000000 00001120 00001000 40a7a51b
I/DEBUG ( 180):
I/DEBUG ( 180): code around pc:
I/DEBUG ( 180): 40a89f0c d02c2b00 9f0f9701 21009102 4001f81b
I/DEBUG ( 180): 40a89f1c 0801f101 eb0bb1cf eb0b0001 90030508
I/DEBUG ( 180): 40a89f2c f8162000 f1009000 454c0a01 eb06d109
I/DEBUG ( 180): 40a89f3c 4628010a f7e54622 4601ef8c 29002001
I/DEBUG ( 180): 40a89f4c eb0ad00a 42b80009 eb08d3eb 9a040104
I/DEBUG ( 180): 40a89f5c 42912002 e000d3da 99029e03 1c729f01
I/DEBUG ( 180): 40a89f6c 7832603a b005700a 8ff0e8bd 3178f8d0
I/DEBUG ( 180): 40a89f7c 2100600b bf182b00 117cf890 47706011
I/DEBUG ( 180): 40a89f8c 11a4f8c0 21a8f8c0 bf004770 11acf8c0
I/DEBUG ( 180): 40a89f9c 21b0f8c0 bf004770 4605b570 f8d54614
I/DEBUG ( 180): 40a89fac 460e01bc bf182800 ee02f7e5 f240480a
I/DEBUG ( 180): 40a89fbc 490a6296 44014478 f7e54620 2101edee
I/DEBUG ( 180): 40a89fcc 01bcf8c5 4631b130 f7e54622 2100ee2e
I/DEBUG ( 180): 40a89fdc 41c0f8c5 bd704608 00013a84 ffffb5ae
I/DEBUG ( 180): 40a89fec 4605b570 f8d54614 460e019c bf182800
I/DEBUG ( 180): 40a89ffc eddef7e5 f240480a 490a62aa 44014478
I/DEBUG ( 180):
I/DEBUG ( 180): code around lr:
I/DEBUG ( 180): 45fcb07c 46052121 f7fe4640 6a6aef98 b13c6aab
I/DEBUG ( 180): 45fcb08c 000ce88d 46314638 9b084622 ef74f7fe
I/DEBUG ( 180): 45fcb09c e8bd2000 b53881fc b1884604 b1556a05
I/DEBUG ( 180): 45fcb0ac ffccf7ff 68036829 47906d9a f7fe4628
I/DEBUG ( 180): 45fcb0bc 2000ef82 21006220 60e12001 bd386161
I/DEBUG ( 180): 45fcb0cc b508bd38 6d5a6803 bd084790 6803b508
I/DEBUG ( 180): 45fcb0dc 47906dda b508bd08 6fda6803 bd084790
I/DEBUG ( 180): 45fcb0ec 6804b510 4084f8d4 bd1047a0 b513b40c
I/DEBUG ( 180): 45fcb0fc 6804ab04 2b04f853 40c8f8d4 47a09301
I/DEBUG ( 180): 45fcb10c 401ce8bd 4770b002 b513b40c 6804ab04
I/DEBUG ( 180): 45fcb11c 2b04f853 40f8f8d4 47a09301 401ce8bd
I/DEBUG ( 180): 45fcb12c 4770b002 b513b40c 6804ab04 2b04f853
I/DEBUG ( 180): 45fcb13c 41ccf8d4 47a09301 401ce8bd 4770b002
I/DEBUG ( 180): 45fcb14c 6803b508 229cf8d3 bd084790 6803b508
I/DEBUG ( 180): 45fcb15c 22acf8d3 bd084790 6804b510 42b0f8d4
I/DEBUG ( 180): 45fcb16c bd1047a0 6803b508 32b4f8d3 bd084798
Google Analytics Documentation is different in git and in ngcordova.com, which one do we use?
Hi,
If we use GAPlugin with PhoneGap Build 3.1.0, the device is never ready
(event ondeviceready not sent)
Best regards ;)
I am creating an app using gaplugin... and when I made the analytics on ios it goes to the init funcion and does not execute any callback, either success or error, then when making a trackevent it displayed a message that says "trackevent init not initialized" ... so is there any update on this? or have anyonw experienced this?
I'm trying to install a extension called Angulartics for an AngularJS based mobile framework designed to hook in with Google Analytics and Cordova.
In their instructions, I am being told to install the GAPlugin, however I cannot get it to work. After some Google searches, it seems there a bunch of different versions out there, however when I try to install them using cordova plugin add [repo-path]
, none I have found so far work.
The app I am building requires iOS7+. Any help would be appreciated!
Thanks!
unfortunately the app. close when tracking a page in a certain random time. where no error appear on the console of eclipse.
note that i am using the plugin for android with cordova version 3.4 .
Google Analytics supports user identification via the &uid variable. Currently it's not possible to set it through GAPlugin.
The JS for native ga lib is:
ga(‘set’, ‘&uid’, {{USER_ID}}); // Set the user ID using signed-in user_id.
PhoneGap 3.0.0 was released on the 19th of July 2013. Attempting to install through the with the PhoneGap CLI returns this error:
Plugin doesn't support this project's Cordova version. Project version: 3.0.0, failed version requirement: <3.0.0
Is this plugin still under development? I see a lot of pull requests but the last commit is 6 months ago.
I'm just starting with GA on PhoneGap 2.9 through PhoneGap Build. I have the same simple code on iOS and Android. On iOS the success handler is called, on Android the error handler is called.
function onDeviceReadyGA(){
gaPlugin = window.plugins.gaPlugin;
gaPlugin.init(gASuccess, gAError, "UA-xxx", 20);
}
function gASuccess(){
alert("Google Analytics Success");
}
function gAError(){
alert("Google Analytics Failed");
}
The error I get on Android is "Class not found.".
I'm using phonegap v3. I have installed the plugin for ios and android as per the readme (altered config.xml and installed with plugman), which all went smoothly. I used these plugman commands (from within my phonegap project dir):
plugman install --platform ios --project platforms/ios/ --plugin /path/to/GAPlugin/
plugman install --platform android --project platforms/android/ --plugin /path/to/GAPlugin/
My problem is when I start the app, and run the device ready code (where I am instantiating my other plugins successfully), I get this error:
TypeError: 'undefined' is not an object (evaluating 'gaPlugin.init')
On further inspection, there is no gaPlugin in window.plugins. I can see a few commits targeting phonegap v3, so I assumed it would work. Has anyone else got this working yet?
I don't know much about phonegap plugins, but there seems to be a few oddities compared to the other plugins I have installed. The plugin files are put in platforms/ios/cordova/plugins/com.adobe.plugins.GAPlugin/ for iOS and platforms/android/cordova/plugins/com.adobe.plugins.GAPlugin/ for Android whereas for all my other plugins, they are put in the root plugins/ dir (and added to the ios.json and android.json in there).
When updating Xcode and Cordova, we get :
a first error that we can easily solve by adding SystemConfiguration.framework
a second error due to the fact the google analytics library has not been updated :
Fixed by the 3.03 release,
https://developers.google.com/analytics/devguides/collection/ios/resources
64-bit support is now available in v3.03 of the Google Analytics Services SDK for iOS.
In order to solve it quick on my side, I've compiled the app without arm64, but this is not a long term solution.
Could you please update your plugin this issue ?
Thanks
Could trackTiming be added?
Change GAPlugin.h
#import <Cordova/CDV.h>
#import "GAI.h"
@interface GAPlugin : CDVPlugin
{
BOOL inited;
}
- (void) initGA:(CDVInvokedUrlCommand*)command;
- (void) exitGA:(CDVInvokedUrlCommand*)command;
- (void) trackEvent:(CDVInvokedUrlCommand*)command;
- (void) trackPage:(CDVInvokedUrlCommand*)command;
- (void) setVariable:(CDVInvokedUrlCommand*)command;
@end
Change GAPlugin.m
#import "GAPlugin.h"
#import "AppDelegate.h"
@implementation GAPlugin
- (void) initGA:(CDVInvokedUrlCommand*)command
{
NSString *callbackId = command.callbackId;
NSString *accountID = [command.arguments objectAtIndex:0];
NSInteger dispatchPeriod = [[command.arguments objectAtIndex:1] intValue];
[GAI sharedInstance].trackUncaughtExceptions = YES;
// Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
[GAI sharedInstance].dispatchInterval = dispatchPeriod;
// Optional: set debug to YES for extra debugging information.
//[GAI sharedInstance].debug = YES;
// Create tracker instance.
[[GAI sharedInstance] trackerWithTrackingId:accountID];
// Set the appVersion equal to the CFBundleVersion
[GAI sharedInstance].defaultTracker.appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
inited = YES;
[self successWithMessage:[NSString stringWithFormat:@"initGA: accountID = %@; Interval = %d seconds",accountID, dispatchPeriod] toID:callbackId];
}
-(void) exitGA:(CDVInvokedUrlCommand*)command
{
NSString *callbackId = command.callbackId;
if (inited)
[[[GAI sharedInstance] defaultTracker] close];
[self successWithMessage:@"exitGA" toID:callbackId];
}
- (void) trackEvent:(CDVInvokedUrlCommand*)command
{
NSString *callbackId = command.callbackId;
NSString *category = [command.arguments objectAtIndex:0];
NSString *eventAction = [command.arguments objectAtIndex:1];
NSString *eventLabel = [command.arguments objectAtIndex:2];
NSInteger eventValue = [[command.arguments objectAtIndex:3] intValue];
NSError *error = nil;
if (inited)
{
BOOL result = [[[GAI sharedInstance] defaultTracker] sendEventWithCategory:category withAction:eventAction withLabel:eventLabel withValue:[NSNumber numberWithInt:eventValue]];
if (result)
[self successWithMessage:[NSString stringWithFormat:@"trackEvent: category = %@; action = %@; label = %@; value = %d", category, eventAction, eventLabel, eventValue] toID:callbackId];
else
[self failWithMessage:@"trackEvent failed" toID:callbackId withError:error];
}
else
[self failWithMessage:@"trackEvent failed - not initialized" toID:callbackId withError:nil];
}
- (void) trackPage:(CDVInvokedUrlCommand*)command
{
NSString *callbackId = command.callbackId;
NSString *pageURL = [command.arguments objectAtIndex:0];
if (inited)
{
NSError *error = nil;
BOOL result = [[[GAI sharedInstance] defaultTracker] sendView:pageURL];
if (result)
[self successWithMessage:[NSString stringWithFormat:@"trackPage: url = %@", pageURL] toID:callbackId];
else
[self failWithMessage:@"trackPage failed" toID:callbackId withError:error];
}
else
[self failWithMessage:@"trackPage failed - not initialized" toID:callbackId withError:nil];
}
- (void) setVariable:(CDVInvokedUrlCommand*)command
{
NSString *callbackId = command.callbackId;
NSInteger index = [[command.arguments objectAtIndex:0] intValue];
NSString *value = [command.arguments objectAtIndex:1];
if (inited)
{
NSError *error = nil;
BOOL result = [[[GAI sharedInstance] defaultTracker] setCustom:index dimension:value];
if (result)
[self successWithMessage:[NSString stringWithFormat:@"setVariable: index = %d, value = %@;", index, value] toID:callbackId];
else
[self failWithMessage:@"setVariable failed" toID:callbackId withError:error];
}
else
[self failWithMessage:@"setVariable failed - not initialized" toID:callbackId withError:nil];
}
-(void)successWithMessage:(NSString *)message toID:(NSString *)callbackID
{
CDVPluginResult *commandResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:message];
[self writeJavascript:[commandResult toSuccessCallbackString:callbackID]];
}
-(void)failWithMessage:(NSString *)message toID:(NSString *)callbackID withError:(NSError *)error
{
NSString *errorMessage = (error) ? [NSString stringWithFormat:@"%@ - %@", message, [error localizedDescription]] : message;
CDVPluginResult *commandResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:errorMessage];
[self writeJavascript:[commandResult toErrorCallbackString:callbackID]];
}
-(void)dealloc
{
[[[GAI sharedInstance] defaultTracker] close];
// [super dealloc];
}
@end
Per recent flavors of iOS, you can't explicitly call "dealloc", and Xcode will fail on build/compile.
The offending line is: Plugins/com.adobe.plugins.GAPlugin/GAPlugin.m:121:6:
I can't seem to get the plugin to build with 64 bit iPhone, which means I can't update my app in the store. I can build for everything else. Any thoughts?
ld: warning: ignoring file /Users/ME/Mobile-Development/Mobile-Apps/MyApp/platforms/ios/MyApp/Plugins/com.adobe.plugins.GAPlugin/GoogleAnalytics.a, missing required architecture x86_64 in file /Users/ME/Mobile-Development/Mobile-Apps/MyApp/platforms/ios/MyApp/Plugins/com.adobe.plugins.GAPlugin/GoogleAnalytics.a (3 slices)
Undefined symbols for architecture x86_64:
"OBJC_CLASS$_GAI", referenced from:
objc-class-ref in GAPlugin.o
"OBJC_CLASS$_GAITransaction", referenced from:
objc-class-ref in GAPlugin.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I installed the plugin from git, and I was not able to set up the plugin successfully without the following steps that are missing from the Readme.md file:
<script src="GAPlugin.js"></script>
Explanation:
Without this step, you get a fatal error because the plugin javascript variables haven't been defined.
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Explanation:
Without ACCESS_NETWORK_STATE, the plugin assumes you are offline and never sends the requests to Google Analytics and eventually shuts down.
How do you remember Allow/Deny. It is prompting every time. Where is this information stored or is Google just requiring the ask?
Thanks
It seems like this project is no longer in development.
What is a good fork of this project?
Everything is working for me except arm64 support.
Not sure what I'm doing wrong,
I initialized the plugin and tried to track the page like this:
gaPlugin = window.plugins.gaPlugin;
gaPlugin.init(function() {alert('success');}, function() {alert('fail');}, "UA-XXXXXXX-X", 10);
gaPlugin.trackPage( function(result) {alert('success: ' + result);}, function(error) {alert('fail: ' + error);}, "https://www.mytesturl.com/page1");
But after checking in google's realtime tracker, I never see the page being logged.
After upgrading a project to cordova 2.7, and also updating to latest GAPlugin, this runtime error occurs:
TypeError: 'undefined' is not a function (evaluating 'cordovaRef.addConstructor') at GAPlugin.js:56.
Is addConstructor now gone? Does GAPlugin need to be updated appropriately?
thanks
hi ,
I used the same code base , but I was not able to find cordova.js file , and please let me know including js file path in index.html is enough ? or I need to load any plugins/jar files ?
The Google Analytics SDK allows us to start a new session by setting tracker.sessionStart
to YES
. This adds a parameter to the next sent hit indicating that it should start a new session.
https://developers.google.com/analytics/devguides/collection/ios/v2/sessions
How do I achieve this with the GAPlugin?
Enabled this within analytics, but unable to see the stats.
http://stackoverflow.com/questions/21930985/gaplugin-enable-demographics-and-interest-reports
Hi
Some people, including myself, may encounter the 'Class not Found' issue.
Please add the missing instruction to the readme
Add the following feature tag in your config.xml
`
Best regards
Hi,
I'm pretty new to programming for iOS (just started last night) but I believe this is an issue caused by my build target being 7?
Plugins/com.adobe.plugins.GAPlugin/GoogleAnalytics.a(GAITransaction.o), too many compact unwind infos in function anon for architecture i386
I did some googling and people the answer is to upgrade the google analytics library. Is can anyone tell me how to do this? The files I got from google don't exactly match the ones in this plugins source.
Cheers
I have tried the following integration (Phonegap Build) but the plugin doesn't seem to work:
In my config.xml:
[gap:plugin name="com.adobe.plugins.gaplugin" /]
In my javascript file:
function onDeviceReady() {
app.initialize();
gaPlugin = window.plugins.gaPlugin;
gaPlugin.init(successHandler, errorHandler, "UA-12345678-1", 10);
}
I have created the success and error functions, but both don't seem to be fired. So no success and no error.
What can I be doing wrong?
Hi, Please help!
Hi,
I got the following error when I built app for iOS:
Error:TypeError: 'undefined' is not a function(evaluating 'cordovaRef.addConstructor')
in GAPlugin.js line 49.
Just a note that you are missing the the install command from the instructions
plugman --platform [PLATFORM] --project [TARGET-PATH] --plugin [PLUGIN-PATH]
should be
plugman install --platform [PLATFORM] --project [TARGET-PATH] --plugin [PLUGIN-PATH]
Hello,
I'm having problems with this plugin, it seems that Analytics V1 does not work with new Google Analytics Accounts. I created a new Analytics account and added a mobile app profile, I'm testing on Android, and can see the data getting sent to Google but it does not arrive in the stats. I've created a test project with V2 and it appeared straight away.
Please could you update the plugin to V2 of Google Analytics? I understand the changes shouldn't be that significant and at the moment it seems like one of the few supported plugins for phongap build is broken.
Thanks
Hi there,
On completely new installation of Cordova ( cordova -v gives:
3.4.0-0.1.0 )
On a completely new project, with only this plugin and the demo code, I get the following:
Uncaught TypeError: Cannot call method 'addConstructor' of undefined GAPlugin.js:47
Any ideas what I am doing wrong or what I could do to fix it?
Thanks
I have installed plugin in my phonegap app, i am getting following error
exec() call to unknown plugin: GAPlugin
on errorHandler i am getting error
"Class not found"
i have cordova 3.0.4
plugman 0.10.1
npm 1.3.5
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.