2012-11-28 37 views
11

Tôi đã đọc tài liệu trên trang web GoogleAnalytics v2 (về cơ bản tôi đã đọc tất cả các trang từ https://developers.google.com/analytics/devguides/) nhưng không thể tìm đủ chính xác để trả lời câu hỏi của tôi. Nó bị thiếu hoặc trộn lẫn với tài liệu phiên bản 1.Cách dừng phiên trong Google mobile analytics v2 cho android mà không cần EasyTracker

Tôi biết rằng với EasyTracker, bạn có thể đặt tham số timeout_session. Nhưng tôi không muốn sử dụng EasyTracker và tôi muốn dừng một phiên một cách rõ ràng tại một số điểm trong mã của tôi. (Không thiết lập một thời gian chờ)

tôi bắt đầu một phiên khi tôi mở ứng dụng của tôi với:

mTracker.setStartSession(true); 

và đã tự hỏi nếu gọi

mTracker.setStartSession(false); 

explicitely dừng nó.

Bất kỳ trợ giúp hoặc điểm nào để hướng dẫn/tài liệu hướng dẫn tốt hơn sẽ được đánh giá cao.

Trả lời

1

Trong v3 GA, tự bắt đầu hoặc kết thúc một phiên làm việc, sử dụng tham số kiểm soát phiên của tracker như sau:

Bắt đầu một phiên làm việc mới. Lần truy cập tiếp theo từ trình theo dõi này sẽ là lần truy cập đầu tiên trong phiên mới.

[tracker set:kGAISessionControl value:@"start"]; 

Kết thúc phiên. Lần truy cập tiếp theo từ trình theo dõi này sẽ là lần truy cập cuối cùng trong phiên hiện tại.

[tracker set:kGAISessionControl value:@"end"]; 

Thông tin này có sẵn từ liên kết: https://developers.google.com/analytics/devguides/collection/ios/v3/sessions

+1

Xin chào, cảm ơn bạn vì điều đó! Tôi đã yêu cầu cho android (tôi đã đặt thẻ "Android" cho câu hỏi của tôi) vì vậy đây là một liên kết thích hợp hơn cho câu hỏi của tôi: https://developers.google.com/analytics/devguides/collection/android/v3/ phiên Nó giống như của bạn nhưng đối với Android ... Ngoài ra tôi đã yêu cầu phân tích v2 nhưng tôi đoán tôi sẽ phải di chuyển sang v3 sau đó. Tôi chấp nhận câu trả lời của bạn vì tôi nghĩ nó chính xác hơn. Cảm ơn bạn lần nữa. – p4u144

0

Trong GoogleAnalytics v2, họ có các cách mới để bắt đầu/ngừng phiên.

Tôi chưa thấy mã của bạn là mTracker.setStartSession(true)mTracker.setStartSession(false) được sử dụng trước đây.

Bây giờ, nếu bạn không muốn sử dụng phương pháp EasyTracker bạn có thể bắt đầu một phiên làm việc mới bằng cách như sau:
mTracker.startNewSession("UA-xxxxxxx-x", 20, this);

Với đầu vào đầu tiên là
(String uniqueGoogleAnalyticsKey, int autoDispatchTimer, Context this)

Để ngăn chặn nó: tracker.stopSession();

+1

Hi.Nếu bạn truy cập trang này: https://developers.google.com/analytics/devguides/collection/android/v2/sessions đề xuất rõ ràng rằng tài liệu v2 của nó, bạn sẽ thấy ở phần "Quản lý phiên thủ công" họ sử dụng 'myTracker.setStartSession (true);' Câu hỏi của tôi là: chúng tôi có thể sử dụng 'myTracker.setStartSession (false)' như những gì bạn đề xuất 'myTracker.stopSession()' dường như không tồn tại. – p4u144

+0

@ p4u144, tôi nghĩ Grant đang đề cập đến GA V1 (kế thừa) chứ không phải phiên bản beta V2 hiện tại. Mặc dù, tôi cũng quan tâm đến việc tìm kiếm giải pháp cho câu hỏi của bạn. Tài liệu của V1 có tại đây: https://developers.google.com/analytics/devguides/collection/android/devguide – Gautam

+0

@Tôi tin rằng EasyTracker là cách được khuyến nghị làm việc với Google Analytics –

6

Tổng quan

Vì vậy, tôi đã dành một số thời gian đi qua các Measurement Protocol cũng như xem qua các bản ghi gỡ lỗi trong LogCat. Khi GA trên điện thoại của bạn 'công văn' một loạt các hit, mỗi hit dường như có một yêu cầu HTTP tương ứng trong nhật ký bắt đầu với:

GET /collect?... 

và được theo sau bởi một loạt các parameters xác định loại hit (ví dụ: sự kiện, xã hội, thương mại điện tử) và một số thông tin cơ bản về ứng dụng (ví dụ: id ứng dụng, id theo dõi, dấu thời gian).

Đây là những gì tôi đã học:

setStartSession(false) không không kết thúc một phiên làm việc.


Làm thế nào tôi phát hiện ra nó

Như tôi đã nói trước đó, mỗi hit đại diện cho một số loại của một hành động. Tuy nhiên, phiên bắt đầu hoặc kết thúc phiên không được coi là lần truy cập. Chúng chỉ là dữ liệu bổ sung được thêm vào lần truy cập gần đây nhất cho GA biết nhóm các lần truy cập trong tương lai trong một phiên mới.

Vì vậy, nếu bạn sendEvent(...) và sau đó setStartSession(true), và sau đó dispatch(), bạn sẽ thấy ONE hit trong các bản ghi mô tả các sự kiện với một tham số bổ sung &sc=start mô tả khởi đầu của một phiên làm việc mới.

Sau đó, tôi đã thử thực hiện ở trên bằng cách sử dụng setStartSession(false) và tôi không nhận thấy thông số bổ sung &sc. Nó phải là &sc=end, như được mô tả here.


tiềm năng Hack

Các theo dõi đã có một phương pháp send(...) rằng có vẻ như nó sẽ cho phép bạn gửi một phong tục nhấn bằng cách xác định các thông số cần thiết. Sau một số thử nghiệm và lỗi, sau đây đã tạo thành công sự kiện đính kèm thông số kết thúc phiên như được mô tả ở trên.

Map<String, String> data; 
data = EasyTracker.getTracker().constructEvent("Test", "Test", "Test", 0L); 
data.put("sessionControl", "end"); 
EasyTracker.getTracker().send("event", data); 

Vì vậy, về mặt lý thuyết, mỗi lần bạn muốn kết thúc phiên, bạn có thể có sự kiện giả (như trên), thêm thông số sessionControl và gửi đi. Từ các bản ghi có vẻ như nó hoạt động hoàn hảo, nhưng tôi chưa xác minh điều này trên bảng điều khiển GA của mình.

Và đảm bảo bạn tắt kiểm soát phiên tự động bằng cách đặt ga_sessionTimeout thành -1 trong tệp analytics.xml của bạn.

Tôi cũng đã tải lên my project here, nếu bạn muốn thử xem qua nhật ký và so sánh số lần truy cập. Đảm bảo bạn cập nhật id theo dõi GA của mình. Hi vọng điêu nay co ich!


Logs My

Bắt đầu phiên + Kiểm tra tổ chức sự kiện, văn

GET /collect?ul=en-us&ev=0&ht=1362779137510&sr=720x1184&a=0&sc=start&aid=com.example.com.example.sessiontest&ea=Test&cid=ae57a272-89b2-46ab-8c82-7acdb49c3669&ec=Test&av=1.0&v=1&t=event&el=Test&an=com.example.sessiontest&tid=UA-XXXXXXXX-X&_u=.sMC&_v=ma1b4&cd=com.example.com.example.sessiontest.MainActivity&qt=2788&z=48 HTTP/1.1 

Cuối phiên + Kiểm tra tổ chức sự kiện, văn

GET /collect?ul=en-us&ev=0&ht=1362779233499&sr=720x1184&a=0&aid=com.example.com.example.sessiontest&ea=Test&cid=ae57a272-89b2-46ab-8c82-7acdb49c3669&ec=Test&av=1.0&v=1&t=event&el=Test&an=com.example.sessiontest&tid=UA-XXXXXXXX-X&_u=.ssMMC&_v=ma1b4&cd=com.example.com.example.sessiontest.MainActivity&qt=3726&z=50 HTTP/1.1 

Cuối phiên Hack + Kiểm tra tổ chức sự kiện, văn

GET /collect?ul=en-us&ev=0&ht=1362779194381&sr=720x1184&a=0&sc=end&aid=com.example.com.example.sessiontest&ea=Test&cid=ae57a272-89b2-46ab-8c82-7acdb49c3669&ec=Test&av=1.0&v=1&t=event&el=Test&an=com.example.sessiontest&tid=UA-XXXXXXXX-X&_u=.ssyL&_v=ma1b4&cd=com.example.com.example.sessiontest.MainActivity&qt=3581&z=49 HTTP/1.1 
+0

Cảm ơn bạn! Điều này rất hữu ích. Tôi đã không thử nó, nhưng điều này chắc chắn là một bước tiến. Tôi sẽ cho bạn biết kết quả khi tôi thử. Thật tệ khi chúng tôi cần sử dụng một hack nhỏ và không tồn tại bất kỳ cách chính thức nào để kết thúc phiên ... – p4u144