New to Countly - 2 more issues to understand

hi

  1. Can anyone direct me to link that will explain me the main differences between community edition to the enterprise edition ?

  2. I would like understand what the term Session means and what is the recommendation to use it. what is the best practice to use Session, what should I end it. etc.

Thanks

Hagai

0

Comments

19 comments
  • Hello,

    1. about the first, I think here is a link that would explain it: https://count.ly/compare/
      but you can also use contact form and sales representative would contact you if you have any more questions:
      https://count.ly/enterprise-contact-us/

    or you can just try it out here as trial account: https://count.ly/try-countly-enterprise/

    1. If you are using SDK, then session by default would mean the time user is using your app. So every app open starts a session, every close or bringing app to background ends a session, if app is brought back from background or reopened in less than 15 seconds (configurable per server) then previous session is extended, if more then it counts as new session.
    0
    Comment actions Permalink
  • Thanks

    regarding sessions. what is the main benefit of session? assume have 3 events occurred in a single form of the application, what is the difference if I am wrapping each event in is own session or if I open one session for the 3 events together ?

    0
    Comment actions Permalink
  • The difference is mostly from Enterprise features
    In each user profile you are able to see all events of specific session
    In flows, you are able to see a graph of events that users sent starting from session start
    In retention session marks a retention, without session there is no retention

    But also in community edition, session it self is a metric, to see how much users interact with your app, so you should define it the way you want to measure it.

    0
    Comment actions Permalink
  • Cool

    many thanks for your responding
    it helps me a lot.

    0
    Comment actions Permalink
  • hi

    We would like to understand more deeply with more details how to use the Session via an example,
    so we will be able to make PoC to work with Countly.

    Assume we are developing an Email program (Outlook for an instance).

    1. Since the Outlook is open on the user desktop all the time - how can I know/detect that a session has
      been start/end.
    2. Can I organize the sessions to Main session and specific sessions? for example when
      • Outlook opened we are starting the main session.
      • If the user clicked on a ribbon, we have an event on the main session that a ribbon was clicked.
      • In the ribbon page we will start a new and separate session that dedicate only to the ribbon page.
      • What if - for example - I have started a session for writing new email,
        then I left the room for a long time and return back and complete the email.
        what is the recommendation in that case when we have a timeout in the middle of the session,
        how can detect this and what is the way to handle this.
    3. Basically, If you can illustrate the Sessions management via the Outlook example that will be a great help
      for us.

    thank you very much for your help.

    0
    Comment actions Permalink
  • Sure,
    So app starts, you send begin_session=1
    while app is opened, you are extending session by sending periodic updates on session duration, for example, every minute you can send and say 1 minute of session has passed, by sending session_duration=60 (as in 60 seconds).
    Then usually if app gets minimized, you would send end_session=1 and also add duration how much time has passed since last session duration or begin session request.
    This is explained in more details in our SDK development guide (http://resources.count.ly/docs/sdk-development-guide#section-session-flow)

    On the question how you can know when to send those requests, then it really depends on your development language and environment. Usually there are events on app start, app end, minimize and maximize windows, etc. In most cases you should listen to them and send requests accordingly.

    About main session and "sub" session, there are none. As in there is only one session for one user during same time. But what you describe sounds more like a view. So during a session, user can access multiple views, its like sections in your program, which can be technical, like specific form, page, etc. Or more business logic, decision is up to you. And these views also have durations, so you would know what views each user has accessed and for how long.

    0
    Comment actions Permalink
  • thanks
    regarding the number of the session (in your example 1)
    what is that mean, that anyone else cannot use this number and must use another number to create a session? for how long?

    0
    Comment actions Permalink
  • which number are you referring to?
    begin_session=1 then it is the same as begin_session=true only shorter

    but if you mean
    session_duration=60, then it means add 60 seconds to session duration

    0
    Comment actions Permalink
  • Hi

    Regarding the Views.
    is there any way to create then via the SDK or the APIs ?

    thanks

    hagai

    0
    Comment actions Permalink
  • Views can only be created via API. And SDK uses API.
    More information on API call is here:
    http://resources.count.ly/v1.0/reference#section-views

    0
    Comment actions Permalink
  • Hi
    Regarding the Views.
    If i understand a View is an event?
    Assume user started a view, after that he made some click buttons and at the end he exit the view.
    From the countly perspective, this is mean that I have start view events in the beginning of the event section. after that I have the button click events and at the end I have the exist view event.
    is that true?

    Another question - can I send with the Countly write API the following parts: the time the session started , list of events, the time the session ended ?

    thanks, Hagai

    0
    Comment actions Permalink
  • View is event and depending on this internal event segments, we record different metrics, like when app first starts the first view gets this event

    {
        "key": "[CLY]_view",
        "count":1,
        "segmentation":{
            "name": "MyView"
            "visit":1,
            "start": 1,
        }
    }
    

    When user exits view we send duration

    {
        "key": "[CLY]_view",
        "count":1,
        "dur": 360
        "segmentation":{
            "name": "MyView"
        }
    }
    

    If user exists view and app, we also send the fact that on this view app exited

    {
        "key": "[CLY]_view",
        "count":1,
        "dur": 360
        "segmentation":{
            "name": "MyView"
            "exit":1
        }
    }
    

    But there is no direct end of view event, only updating view's duration

    About session, started, it is similar, you send begin_session=1 and provide timestamp when session started, then you updated session with incremental steps of session_update value, and that is how session duration is calculated. After that you can either send end_session=1 to state that session has ended, or just start new session, as there is no internal end session event, only session start and its duration, same as view.

    0
    Comment actions Permalink
  • My case is that I have all the sessions, events, views etc in a database
    and I want to upload it from DB to county.
    So I would like to have single API for each session that contains the start, end and the events.
    according to your reply I understand that I need to make this with 3 calls. True ?

    0
    Comment actions Permalink
  • Not really.
    begin_session=1&events=[...] is completely valid request. In fact events can be added to any request.

    But if you want to update session duration, then yes, it should be in a separate request with parameter
    session_duration={number in seconds}

    And this number is capped to setting under Management -> Configuration -> API -> Maximal Session Duration

    If you want to send higher values in single request as session duration updates, you can increase it in the countly server configurations.

    So for those 2 you need 2 reqests. If you don't care about session duration, one request is fine.

    You can also use bulk import, to combine multiple requests into one:
    https://resources.count.ly/v1.0/reference#ibulk

    0
    Comment actions Permalink
  • Thank you for your response.
    buy the way, is there any limitation for the Session Duration time and for the event name/value string ?

    thanks

    0
    Comment actions Permalink
  • Maximal session duration time is in that configuration, and its purpose to eliminate human error and not send some values, like timestamp, etc. There are no other limitation and changing that setting would not change anything else how data is processed, so it is safe to do that.

    About event name (and segment keys), then it can't start with $ and cannot contain . in it.

    0
    Comment actions Permalink
  • thanks

    the event value and the segment value has no length limitation ?

    0
    Comment actions Permalink
  • Yes, true, thank you for reminding, its 128 symbols

    0
    Comment actions Permalink
  • ok
    thanks

    0
    Comment actions Permalink

Please sign in to leave a comment.