what analytic tool can I use for tracking exactly what users click - ruby-on-rails

Please advise what tool can I use to track what user is exactly clicking i.e. click-streams – to view the actual click-stream of each visitor.
I came across "rail stat" but it seems outdated (09'). I also saw "clicky" but am unsure if I can see click streams with it?
So what other analytic tool can I use to view click streams?
Every answer would be greatly appreciated!

You could try the "event tracking" part of google analytics which allows you to track interactions with your site (clicks etc etc) rather than just the normal per-page.
Here is a snippet from the Event Tracking docs:
Event Tracking Overview
Event Tracking is a method available in the ga.js tracking code that you can use to record user interaction with website elements, such as a Flash-driven menu system. This is accomplished by attaching the method call to the particular UI element you want to track. When used this way, all user activity on such elements is calculated and displayed as Events in the Analytics reporting interface. Additionally, pageview calculations are unaffected by user activity tracked using the Event Tracking method. Finally, Event Tracking employs an object-oriented model that you can use to collect and classify different types of interaction with your web page objects.
By contrast, tracking web page objects using the urchin.js tracking code requires virtual URL creation and provides no object hierarchy. With the legacy urchin.js code, user interaction with page objects is calculated and displayed as part of total page views to your site, and no distinction is made between actual and virtual pageviews.
With ga.js, you would commonly apply Event Tracking to:
Any Flash-driven element, like a
Flash website, or a Flash Movie player
Embedded AJAX page elements
Page gadgets
File downloads
Load times for data

Another option is Open Web Analytics, which includes an option to both record a user's DOM stream for later playback and to record a heat map.
OWA is a standalone PHP app that is able to monitor multiple domains. It is under active development with version 1.5 out any day now.
HTH

Related

Is Appium only used for testing? What about an app/bot assistant?

i'm looking for some guidance on what the best approach is/ what software I need.
My bf owns a promotional company, books about 15 shows a month and spend a lot of time on his phone, creating event pages, linking up the bands facebook and bandcamp url to events, contacting bands with set times and backline info, etc. I thought I would help him out (and other music promoters that I've talked to) with automating some of these tasks. I know there might be other apps currently out there that have some of these capabilities, but I wanted to create something myself as it be a fun project that I could practice my programming skills(beginner-ish).
The app/bot will act as an assistant. It should be able to create an event, ask for the date and let the user input band names. Maybe there will be a series of check boxes that the user can select whether the band is from out of state(what state), touring, local, EP/album release, etc. Select co-host, location. Then depending on the # of bands and the location it will also generate a set time list, and backline info that the user can copy it and send to the bands(or maybe it will do this automatically, if it has access to the bands instagram or facebook?) Once the user presses done it will automatically create an event page, with date, and all the other info. Under the description of the event page, the app will automatically populate that with info depending on what the user selected. For example if its 2 out of state bands and 2 local bands, then it will write something like: "We welcome our 2 touring friends XX from FL? and xxx from NY? With local support from XX and xx" - something along those lines with a link to their pages.
Maybe in the future the app will also be able to go in and look at the bands facebook pages, go to their events and see what people pressed going/interest in their events, then invite those people to their upcoming show?
How do I get started. Should I use Appium and android studio to develop this app/bot assistant? Is Appium only used for testing? I have some basic programming experience from college and other courses i took, such as Selenium webdriver. More important is this doable or am I setting myself up for failure?
In addition to being a developer, I also am a part-time promoter and perform all of those same tasks that your boyfriend does. If there was some way to automate any of it, I would have done so a long time ago. Unfortunately there is, in my opinion, too much variability between different events, venues, and musical acts.
The biggest time sink for me is tracking down information about each act such as their web site URL, Facebook page URL, Soundcloud profile URL, logo, bio, and photo. (Some of the artists I deal with have a press kit but most don't.) Once the information is compiled, creating the Facebook pages is the easy part.
So, maybe a better use of time would be to create a web form that collects that information from each act and stores it in a folder in a structured way.

Disable multi-tab browsing for single session/user

[Disclaimer: I'm not sure if this kind of question is accepted here as it is about a piece of software deployed already. Rest assured I didn't drop any confidential information. Also do tell me if I violated any rules in SO by posting this so I can take it down immediately]
I have a working Learning Management System web application and I recently received a bug report about a button not showing. After investigating, I have proved that the user was not using the web app as intended. When taking an exam, he was opening multiple tabs to exploit the feature that informs him whether the answer was correct or not. He then will use this information to eliminate the wrong answers and submit all the right answers in another tab/window.
I'm using Rails 4.2. Is there a way to prevent multi-tab browsing? I'm thinking like if a user is signed in and he attempted to open a new tab of the webapp, he should see something like "Please use one tab" and all the features/hyperlinks/buttons are disabled.
Here's a screenshot of how I proved he was using multiple tabs. Notice that there are multiple logs of the same attempt # because the current implementation allows saving a study session and resuming later (this is the part that's exploited). The opening of multiple tabs searches for the most recent attempt session and continues from there. This is also the reason why most of the sessions don't have a duration value -- the user only finishes a study session for one tab (by clicking a button that ends the study session). The system cannot compute for the duration because the other sessions don't have an end timestamp.
-
This is what a single-tab user looks like:
This is more of an application misuse issue more than a bug.
You should add protection not only from multi tab, but for multi browsers aw well, so it can't be purely FrontEnd check.
One of the solutions could be using ActionCable to check if a user has an active connection already and then act accordingly.
Another, for example, generate a GUID in JS and pass it with every answer. If its different from previous answer, it means user opened a new window.
But of course the solution would depend on your current architecture, without knowing how do you currently organise client-server communication it's hard to give exact and optimal solution.
I found an answer here. I just placed this js in the application view to prevent any extra instance of the website.
Thanks for everyone who pitched in.

Can we create a retargeting list in AdWords based on email open data in Marketo?

Based on people who interact with an email campaign through marketo I would to create a retargetting campaign in Adwords.
Is it even possible using RTP?
What kind of interactions you'd like to capture?
If it's clicks so you can pass the leads through some page that will send events to GA and eventually redirect them to the desired page.
if you're interested to capture opens it's more complicated, you will need to capture GA's client ID for each one of your leads when they fill out a form.
There are lead data onboarding tools that might help with this challenge.

Custom replacement strings from third party app

Is there any ability to populate a learning module's content using data passed from a third party application. For example:
Third party data:
userid = 12, username = Sally, user_q1_answer = Jim, user_q2_answer
= 101
Module Content setup:
[[username]], since you are in room [[user_q1_answer]], you should
contact [[user_q2_answer]] in the event of the fire alarm going off.
Module Content Delivered:
Sally, since you are in room 101, you should contact Jim in the event of the fire alarm going off.
Thanks for any help
Currently, no facility in the LMS exists to do this kind of dynamic substitution at render time. A number of other questions here have covered this ground. As of Spring 2013, this kind of functionality is on the development roadmap but there is not yet a committed release vehicle for it.
It might be possible to use a client-side browser extension to detect specially formatted strings in page content and make Valence Learning Framework API calls to find values it can replace those strings with. However, this technique would probably only practically be able to replace values that are known about the current user and their relationship to the LMS. Through URL and page content examination, it might also be possible to gather knowledge about the user's current browsing context (i.e. what course or course section they're looking at), but we never recommend screen-scraping because you can't depend on meaningful tokens or data appearing reliably going forward (where as you can depend on the Learning Framework APIs to be able to get you information about the current operating user).

Integrating twitter,facebook and other services in one single site

I need to develop an application which should help me in getting all the status,messages from different servers like Twitter,facebook etc in my application and also when i post a message it should gets updated in all the services. I am using authlogic for authentication. Can anyone suggest me what gems/plug-ins i can use..
I need API help to get all the tweets/messages to be displayed in my application and also ways to post the messages to the corresponding services by posting it from my application. Can anyone help me from design point.
Walk through what you'd want to do in your head. Imagine the working site, imagine your webapp working before you start. So your user logs in (handled by authlogic) and sees a textbox called "What are you doing right now?". The user fills in a status message and clicks "post". The status message appears at the top of their previously posted messages.
Start with the easy part. Create a class that posts to two services. Use the twitter gem and rfacebook to post to two already defined services. In the future, you'll want to let the user associate services to their account and you would iterate through the associated services and post the message to each. Once you have this working, you can refactor or polish the UI a bit to round out this feature. I personally would do the "add a social media account to my profile" feature towards the end.
Harder is the reading of the data (strangely enough) because you're going to have to figure out how to store it. You could store nothing but I suspect you'd run into API limits just searching all the time (could design around this). I would keep a little cache of posts associated to the user's social media account. In this way, the data model would look like this:
A user has many social media accounts.
A social media account has many posts. (cache)
Of course, now you need to schedule the caching of the posts. This could be done manually, based on an event (like when they login) or time based. So when the update happens, you load up the posts for that social media account and the user will see the posts the next time they hit the page. For real-time push to the client's browser while they stare at the screen, use faye (non-trivial) and ajax to pull the new posts to the top of the social media stream view.
The time based one is tricky because you'd either have to have a cron job run or have rails handle it all with a gem like clockwork. But then you have to leave rails running. I've also solved this by having a class in /lib do all the work and a simple web call kicks off the update. But it wasn't in a multi-user use case. So that might not work. In any case, you'll want to have some nice reusable code for these problems since update requests can come from many different sources.
You'll also have to deal with the API limits. When pulling down content from twitter, you won't get everything. That will just have to be known by the user or you'll have to indicate a "break in time" somehow.
The UI should be pretty easy (functionally anyway), because you know which source the post/content is coming from. It'd be easy to throw a little icon next to the post to display which social media site it's coming from.
Anyway, good luck, sounds like a fun project.

Resources