2011-12-29 18 views
6

Cách tốt nhất để theo dõi hành động của người dùng trong ứng dụng Phonegap là gì? Tôi đang sử dụng PhoneGap Build để xây dựng ứng dụng JS/CSS/HTML Sencha Touch thuần túy, vì vậy tôi có quyền truy cập vào không có gì khác. Google Analytics sẽ chỉ hoạt động cho hoạt động được kết nối và tôi tự tin rằng phần lớn việc sử dụng ứng dụng của tôi diễn ra ngoài mạng.Phân tích tốt nhất cho ứng dụng PhoneGap?

Giải pháp nào nằm ngoài đó? Tôi muốn sẵn sàng trả tiền cho một cái gì đó có giá trị sử dụng.

Trả lời

1

Kể từ khi câu trả lời được chấp nhận là hợp lệ như plugin mà không tồn tại nữa, tôi chỉ muốn đề cập đến các plugin tôi kiểm tra cho mục đích này. Thực tế, có 3 (cộng với một vài chi tiết trong phiên bản beta):

  1. https://github.com/phonegap-build/GAPlugin
  2. https://github.com/danwilson/google-analytics-plugin
  3. https://github.com/cmackay/google-analytics-plugin

sự lựa chọn khó khăn ... Tôi đã được thử nghiệm chúng một cách riêng biệt và tất cả dường như làm công việc, vì vậy có lẽ nó chỉ là một vấn đề sở thích dựa khá nhiều vào cách bạn thích cách chúng được sử dụng.

Không ai trong số họ đề cập đến bất kỳ điều gì liên quan đến xếp hàng sự kiện trong khi thiết bị ngoại tuyến và gửi chúng khi mạng khả dụng, nhưng GAPlugin có hàng đợi được gửi dựa trên tần suất bạn có thể đặt trong quá trình khởi tạo. sự cố ngoại tuyến.

Nếu có ai biết bất cứ điều gì liên quan đến điều này, nhận xét rất được hoan nghênh. Tôi sẽ cố gắng thử nghiệm chúng trên thiết bị khi tôi có thời gian, khiến trình mô phỏng iOS dường như không cho phép tôi tắt wifi ...

1

Bạn có thể viết các trình cắm thêm PhoneGap của riêng mình (về cơ bản là một đoạn mã JavaScript đến Native code). Điều này sẽ cho phép bạn tự do sử dụng bất kỳ giải pháp gốc hiện tại nào có hỗ trợ ngoại tuyến (Webtrends, GA, Flurry, ...).

Xem: http://wiki.phonegap.com/w/page/36752779/PhoneGap%20Plugins

Bạn sẽ phải tạo một tập tin JavaScript và một tập tin Native mỗi nền tảng mà bạn muốn ủng hộ. Trong mã Native của bạn, bạn sẽ thực hiện cuộc gọi đến SDK của nhà cung cấp theo dõi của bạn.

Tôi đã sử dụng ví dụ Android và chỉ cần đặt ví dụ này với nhau làm mẫu. Xin lưu ý rằng điều này đã không được thử nghiệm ở tất cả hoặc thậm chí đưa vào một IDE. Tôi chỉ đơn giản là thay đổi nội dung các ví dụ được cung cấp trong notepad ++ :-)

// Java

public class TrackingPlugin extends Plugin { 
    public static final String ACTION="pageView"; 
    @Override 
    public PluginResult execute(String action, JSONArray data, String callbackId) { 
     Log.d("Tracking", "Plugin Called"); 
     PluginResult result = null; 
     if (ACTION.equals(action)) { 
      try { 
       String pageTitle= data.getString(0); 
       JSONObject res = new JSONObject(); 

       SOME_TRACKING_API.Track(pageTitle); 

       res.put("status","OK"); 
       result = new PluginResult(Status.OK, res); 
      } catch (JSONException jsonEx) { 
       Log.d("DirectoryListPlugin", "Got JSON Exception "+ jsonEx.getMessage()); 
       result = new PluginResult(Status.JSON_EXCEPTION); 
      } 
     } else { 
      result = new PluginResult(Status.INVALID_ACTION); 
      Log.d("TrackingPlugin", "Invalid action : "+action+" passed"); 
     } 
    return result; 
} 

// Javascript

/** 
* @return Object literal singleton instance of Track 
*/ 
var Track = function() { 
}; 

/** 
    * @param pageTitle The title for a new view 
    * @param successCallback The callback which will be called when track call is done 
    * @param failureCallback The callback which will be called when track call is done 
    */ 
Track.prototype.pageView = function(pageTitle,successCallback, failureCallback) { 
return PhoneGap.exec( 
     successCallback, //Success callback from the plugin 
     failureCallback, //Error callback from the plugin 
     'TrackingPlugin', //Tell PhoneGap to run "TrackingPlugin" Plugin 
     'pageView',   //Tell plugin, which action we want to perform 
     [pageTitle]);  //Passing list of args to the plugin 
}; 

PhoneGap.addConstructor(function() { 
    PhoneGap.addPlugin("Track", new Track()); 
}); 
+0

Tôi có 0 mã gốc ngay bây giờ và tôi muốn giữ nó theo cách đó. Tôi chỉ có thể giải quyết bằng cách chỉ thu thập số liệu phân tích trên một tập con của người dùng của tôi hoặc chờ một giải pháp thích hợp sử dụng cơ sở dữ liệu localStorage/local. –

+0

Khi PhoneGap Build hỗ trợ plugin, điều này có thể trở thành một lựa chọn khả thi. –

+0

Tôi nhận được điểm của bạn cố gắng để ở trong JS tinh khiết, một mục tiêu tuyệt vời của nó và may mắn !!! – eSniff

-1

Mọi chuyện trở nên rất khó khăn khi bạn nói về phân tích ngoại tuyến. Hai thứ xuất hiện ở tôi .. Bản đầu tiên và tôi không chắc liệu ứng dụng của bạn có dành cho iOS hay Android nhưng Apple đã từ chối ứng dụng vì "ứng dụng" không có gì khác ngoài trình bao bọc trên trang web trên điện thoại di động. Điều đó liên quan nhiều hơn đến thực tế là các ứng dụng đó không sử dụng bất kỳ chức năng thiết bị lõi nào (không có mã gốc).

Thứ hai, tôi nhận thấy bạn đã đề cập đến việc bạn muốn tránh xa mã gốc nhưng hãy xem GA SDK di động. Bạn sẽ thấy rằng GA thực sự có phương pháp theo dõi và lưu phân tích trong khi thiết bị ngoại tuyến. Khi ứng dụng có kết nối mạng, phân tích sau đó được gửi đến máy chủ GA. Điều này sẽ là một thương mại cho bạn, sử dụng một mã nguồn gốc ít nhưng tiết kiệm thời gian bởi vì bạn không phải cuộn giải pháp của riêng bạn. Chúc mừng!

http://code.google.com/apis/analytics/docs/mobile/overview.html

+2

Tôi đã phát hành ứng dụng HTML5 trong 3 tháng mà không bị từ chối. Bản sửa đổi đầu tiên cũng là một mẩu rác. "Apple từ chối mọi thứ" huyền thoại chỉ là vậy. Tôi đã không sử dụng bất kỳ chức năng gốc nào. –

1

Lưu ý: Thông tin này dường như thể đã lỗi thời cho các phiên bản mới hơn của PhoneGap. Tiến hành thận trọng.

PhoneGap đã phát hành plugin Google Analytics bán chính thức để sử dụng Google Analytics SDK chính thức cho iOS và Android; cho các nền tảng khác, bạn có thể dựa vào JavaScript.

Here's the blog post about it.

Bạn có thể tìm thấy nó trong repository này.

Dưới đây là các thư mục cho:

+0

Điều này sẽ chỉ khả thi khi PhoneGap Build hỗ trợ plugin. Tôi không xây dựng ứng dụng phonegap của riêng mình. –

+0

Các liên kết đến kho lưu trữ GitHub trên bài đăng đó đã chết và tôi không thể tìm thấy phiên bản mới của kho lưu trữ trên GitHub. Có phiên bản mới của plugin này không? – aaronsnoswell

+0

Hmm. Nevermind - anh ấy phải thay đổi đường dẫn đến thư mục Analytics. Liên kết của bạn hoạt động. – aaronsnoswell