How to Monitor Genuine Page Hits - c#

I am trying to monitor genuine page hits. Here is what my site does. I have an article directory where people can post articles. When their article is posted they are paid depending on the amount of unique users visit their pages. So page hits are important. Here is the problem I am facing.
What I need:
I don't want to track page hits by minor search engines or robots.
I would like the major 4 search engines to surf my site because I can monitor them by IP address and not count their visit as a page hit. This cannot be done for spam bots because they do a good job of passing as a real human or major search engine.
Problems:
There are spam bots on the internet
that do not honor the robot.txt file
There are bots that try to fake being a real human user. By manipulating the user agent and other things in the header.
Performance may suffer by always checking the database for good IP addresses
A human being can bypass the captha only to allow their robot to view my pages
Possible solutions:
Require a captcha on every page. If the captcha passes. then log the IP address as good or submit a cookie on the users machine indicating they passed.
Allow all major search engines IP address, so they will not be presented with a captcha
Purchase a bot detection software
Require the viewer to pass a captca every 7 days
Getting accurate human page views is critical for this site to work properly. Do you guys have any other ideas

You could just leave it to Google Analytics. It does a very good job solving the kind of problem you're trying to solve and it's free.

Do you have a reason not to use an existing service or solution?
If you just want to monitor page hits, set up Google Analytics or a similar service on your site, and they'll do a better job of filtering out the noise than a hand-rolled solution possibly could.

Related

C# Developing a Desktop Session Timer

I would like to get some suggestions for a project i am working on. Currently I have 12 computers joined to an AD domain using the same user to login to Windows 10 computers. I am trying to develop an app that will present a message and then log off the user at specified time. I actually have developed that app and for the most part it works. It even has the ability to allow an admin user to come over and change the time remaining. A new requirement has me a little stumped. The admin would like to login to a central computer and monitor the times of the 12 computers and be able to change the time from a central interface. So I am banging my head trying to brainstorm ideas. I decided to ask for help. Here is what I have come up with.
Client/Server App development. (would have to learn)
SQL table. Desktop app updates and pulls data (I would think that would be a lot of unnecessary traffic. Would have to determine how often that app Push/Pulls the data.
Update a local data file and have the Central Management push/pull to that file. Same idea as SQL?
Use a 3rd party app. (Costs and I also like to have flexibility and control)
Any suggestions would be great. I have no problem learning something new however this has unfortunately become a priority request so time management is important. For the most part I am looking for suggestions.
Thank you very much for your time. This is honestly my first "question post".

Displaying ads on C# desktop applications?

So I've been trying to figure out what's going on with ads in desktop applications, and looking at APIs, Google's API seems low on examples and documentation, and I didn't manage to make any sense out of it, and the Bing API seems to be concerning itself with those who want to be advertised, rather than affiliates. In retrospect, so does Google's.
My currently leading idea is to just drop in a web form in my Windows Forms application, and load the HTML that the Google/Bing/Whoever would give me for my webpage, that should register as the ad being viewed/clicked etc. But that seems a bit amateurish, I would imagine there would be a component ready for displaying ads.
So the question is, do advertising APIs from the major players (Google, Bing, Amazon etc) target affiliates or not? If not, does the web browser component method work, or may it lead to having the account revoked due to suspicious use of the HTML code (to prevent scam etc)?
Additionally, I found out that Amazon forbids use of the ads in applications not specifically related to Amazon itself, it seems alright to do so for Bing and Google but I can't find conclusive proof of it, does anyone know what's going on with that?

Tracking screen recorder in windows app

I am working on a web project where content security is client's first priority. I need to create a windows app which will track if the user while visiting the website, is running any screen recorder. If he is, I need to log him out. I have knowledge on c#, vb.net. Can you please tell me if it is possible to track if screen recorder is running on user's computer?
You seriously want to prevent access to a web-site being recorded?
The simple answer is no, you can't tell. However, MS does offer some content protection APIs that might be more what you need, IF you are rendering to a DirectX 11 surface:
Direct 3D Video APIs on MSDN has more info.
It might cost colossal resources to implement such solution (that will have holes and must be maintained). Monitoring web site by means of a desktop app sounds like a dirty insecure hack. What if the user has a mobile phone with the camera?
Better, you shall rely upon standard widely accepted security principles of HTTP/TSL, such as proper authentication, authorisation, security policies, encryption, strong passwords etc.

Request for Advice c# Webplayer

I am currently building an asp.net c# Website for a client of mine to promote their band, on there they would like to have a Webplayer which continues to play music as people are browsing the site. The player is located on the Master page so it is included on every site, but it stops playing every time the site does a postback or refreshes in any way.
I think it is possible to achive this using Iframes or Ajax, although i dont have alot of knowledge in either.The site is only about 6 pages with mainly static information on there, so the only postbacks/refreshes will be done by using the navigation menu to load each page.
My question to you is:
how can I achive this?
what would be the easiest method and what are the pros and cons?
are there any other/better ways of achiving this other than using Iframes or Ajax?
I can provide some code if needed.
Thanks,
Seb
The easiest way to achieve this would probably be to have your site put itself into a frame, where another (very small) frame on the page hosts the media player. That way when people switch pages, the frame with the media player is left alone. However, this will probably come out feeling pretty clunky at best.
The best way is probably to use AJAX. All of your page navigation would happen as AJAX requests, so the user never technically leaves the original page. An iframe will probably be necessary for tracking history so the user can click "back" and have the browser do what they expect, but you can find libraries that will take care of that aspect for you. The media player should probably use a different subdomain for its source than the rest of the site content, because most browsers max out at two simultaneous connections to the same domain--your site could feel sluggish if one of these two connections is being used for the music stream at all times.

Recording request page time with google analytics

It's easy enough to record how long a page takes to load using Events with Google Analytics and I can find plenty of examples of how to do that by searching. The problem is most of these methods record the start time as being the moment the page starts to load so in effect all it tells you is how long the page took to render in a browser. I want to time the full page lifecycle, ie from when the request begins until the browser has completely rendered the page to the user.
Anyone know how to do that with GA?
Is there any way to get from the browser when the request started, rather than having to record a timestamp in javascript?
EDIT: The prior answer was from before Google Analytics released its Site Speed feature; it's far preferable to use the built-in feature, which uses the HTML5 Navigation Timing API.
By default, the Site Speed feature is enabled and samples 1% of traffic.
To increase the sample rate, just add this line before your _trackPageview call, setting the second argument to what percent of your traffic you'd like to track (though Google will only record up to 10,000 visits):
_gaq.push(['_setSiteSpeedSampleRate', 50]); //50%

Categories