GithubHelp home page GithubHelp logo

phonegap-build / gaplugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bobeast/gaplugin

170.0 170.0 144.0 20.27 MB

Google Analytics Plugin

License: MIT License

CSS 6.69% JavaScript 71.03% Java 2.15% Objective-C 20.12%

gaplugin's People

Contributors

bobeast avatar darkv avatar filmaj avatar germandz avatar goya avatar jrunge avatar mkuklis avatar shazron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gaplugin's Issues

GA v3 SDK?

Any word on when the Google Analytics plugin will be updated to the GA v3 SDK? A lot of valuable features in there...

Should this plugin also work in a local PhoneGap project (not PG Build)?

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:

  • created a 'HelloPhoneGap' project in Eclipse
  • downloaded the GAPlugin and installed in 'manually' (I did not use plugman): I copied GAPlugin.js, GAPlygin.java, libGoogleAnalyticsV2.jar, index.html from the downloaded GAPlugin into my HelloPhoneGap project. I also added the GAPlugin in the config.xml
  • copied my own GA Account (UA-12345678-1) into the index.html
  • run the project in an emulator. Results:
    • in onDeviceReady it executes gaPlugin = window.plugins.gaPlugin
    • in onDeviceReady itgives a notification asking for permission
    • in LogCat: Need to call intilize() and be in fallback mode to start diuspatch
    • in LogCat: Thread[]: Service unavailable (code=1), will retry.
    • in LogCat: Thread[]: No campaign data found
    • when I click Track Event, it executes gaPlugin.trackEvent and the logging from the success callback appears in LogCat: trackEvent - category = Button; etc
  • I checked Google Analytics: nothing ;- (

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.

Linker phase error in XCode 6.0.1

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,

window.plugins.gaPlugin.trackEvent crashes app on iOS if last parameter is undefined

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.

Undefined Symbols iOS 7.1

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

eventValue causes an error on Android if it's not an integer

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);

Success callback fired but no tracking in GA?

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?

Request-For-Permission requirement

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?

App version for ios app is wrong

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)...

GAPlugin.js Not Loading?

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.

After using the camera, the GAPlugin will crash Android app

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...

  1. If the GAPlugin is loaded but NOT initialized, there is no crash.
  2. If I stop the GAPlugin with the exit() function before FileTransfer.upload, it still crashes.
  3. If I upload with XMLHttpRequest instead of FileTransfer.upload, it does not crash
  4. If I run any AJAX requests instead of FileTransfer.upload, it does not trigger a crash
  5. If I run FileTransfer.upload and then run an AJAX request, it still crashes. Thought this might flush or close any sockets.

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

GAPlugin not initialized error on IOS8

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?

Version that works?

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!

App Crash on Android

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 .

'&uid' support

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 Support

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

Still under development?

Is this plugin still under development? I see a lot of pull requests but the last commit is 6 months ago.

class not found on Android only, phonegap 2.9

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.".

window.plugins.gaPlugin is undefined

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).

Plugin not up to date for arm64

When updating Xcode and Cordova, we get :

  1. a first error that we can easily solve by adding SystemConfiguration.framework

  2. 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

Phonegap 3.0 Support for iOS

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

64 bit issue?

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)

Add following Gotchas to the Readme.md

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:

  1. Include the following in your index.html:
<script src="GAPlugin.js"></script>

Explanation:
Without this step, you get a fatal error because the plugin javascript variables haven't been defined.

  1. Make sure you have the following permissions in your AndroidManifest.xml:
<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.

Remembering Allow or Deny

How do you remember Allow/Deny. It is prompting every time. Where is this information stored or is Google just requiring the ask?

Thanks

best fork?

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.

Cannot trackPage

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.

cordovaRef.addConstructor is undefined in cordova 2.7

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

where to include the JAR file ?

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 ?

Update README.md

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

iOS 7 support

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

Plugin doesn't seem to work

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?

GAPlugin for v3 Google Analytics Issues

Hi, Please help!

  1. Why should both versions(V2 and V3) of Analytics jar be present in the application ?
  2. Why is the jar name not the same as Google V3 jar (libGoogleAnalyticsServices.jar)?
  3. Also ,the package name of GAPlugin.java, should that not be com.adobe.plugins ?
  4. Now I see the window.plugins is not having 'gaplugins' .Why?
  5. Is this a stable version of GAPlugin ?

cordovaRef.addConstructor error

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.

Installation instructions

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]

Google Analytics Version 2 support

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

Cannot call method 'addConstructor' of undefined GAPlugin.js:47

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

gaPlugin Class not found error

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.