ভিউ গণনা থেকে বট বাদ দেওয়ার সর্বোত্তম উপায় কী?


11

আমার ওয়েবসাইটটি নির্দিষ্ট পৃষ্ঠাগুলিতে দর্শনার্থীদের দর্শন গণনা করছে। আমি লক্ষ্য করেছি যে গুগল এবং অন্যান্য বটস পাগলের মতো আমার সাইটে "ক্লিক করছে" এবং কিছু পৃষ্ঠাগুলি অবাস্তব দর্শনের সংখ্যা পেয়েছে (মানুষের দ্বারা উত্পাদিতগুলির তুলনায়)।

আমি আমার দৃষ্টিভঙ্গি থেকে এই বটগুলি বাদ দিতে সর্বোত্তম অনুশীলনের জন্য বলছি। স্পষ্টতই একটি সাধারণ "ব্যবহারকারী এজেন্ট" এর মধ্যে "বট" এটি করবে না।

আমি মনে করি না বুলেট প্রুফ সমাধান আছে বা আমার এর দরকার নেই।

দ্রষ্টব্য: আমি পিএইচপি + মাইএসকিউএল ব্যবহার করছি।


আপনার প্রশ্নের সঠিক উত্তর আপনি আপনার পরিসংখ্যান ট্র্যাক করার জন্য যে ধরণের সফ্টওয়্যার ব্যবহার করেন তার উপর নির্ভর করে।
গবুজ্জো

@ গুবুজো আমি পিএইচপি + মাইএসকিউএল ব্যবহার করছি। এটি আমার পরিসংখ্যান ট্র্যাক করার জন্য নয়। এটি "সম্পর্কিত", "গরম" এবং "আকর্ষণীয়" এন্ট্রিগুলির প্রশ্নের সম্পর্কে।
আইজবার্গ

উত্তর:


19

আমি আনন্দিত আপনি জানেন যে এটি সম্পাদন করার জন্য বুলেটপ্রুফ উপায় নেই। তার অর্থ আপনার দৃষ্টিভঙ্গি কমপক্ষে বাস্তবসম্মত।

যেহেতু জাভাস্ক্রিপ্ট কোনও বিকল্প নয় আমি বলব আপনার সাথে বাকী রয়েছে:

  • এতে "বট" শব্দের জন্য ব্যবহারকারী-এজেন্টকে পরীক্ষা করুন। এটি তাদের বেশিরভাগকেই ধরবে।

  • কম্পাইল পরিচিত বট একটি তালিকা , সম্ভবত তাদের ব্যবহারকারী-এজেন্ট এবং ফিল্টার তাদের অনন্য শনাক্তকারী কিছু উপর ভিত্তি করে।

  • আপনার ওয়েবসাইটের ফুটারে একটি গোপন লিঙ্ক রাখুন যা ব্যবহারকারী-এজেন্ট এবং / অথবা আইপি ঠিকানা সংগ্রহ করে এমন একটি পৃষ্ঠায় লিঙ্ক করে। ব্যবহারকারীরা এটি দেখতে পাবেন না তবে বটগুলি তা দেখবে। সুতরাং যে কেউ এই পৃষ্ঠাতে যান তারা বট হবে। এগুলি রেকর্ড করুন এবং তারপরে এগুলি আপনার পরিসংখ্যান থেকে ব্লক করুন।


এটি আশাব্যঞ্জক মনে হচ্ছে। আমি একটি ফাঁদ ধারণা পছন্দ করি। আমি আমার সাইটে অদৃশ্য ইনপুট ক্ষেত্রের সাথে (কুৎসিত ক্যাপচার পরিবর্তে) ব্যবহারকারীর মন্তব্যে অভিন্ন কিছু করি। :-)
আইজবার্গ 14

2
@ আইসবার্গ, একে হনিপট বলা হয়। আমি নিজেই সেগুলির একটি বড় ভক্ত।
জন কনডে

সম্ভবত সেরা সমাধান ...
vkGunasekaran

7

তিনটি মোটামুটি সহজ উপায় রয়েছে:

  1. গুগল অ্যানালিটিক্স ব্যবহার করুন, যা আপনার জন্য সমস্ত ডেটা প্রক্রিয়া এবং পরিচালনা করবে এবং আপনাকে দর্শকদের জন্য বিশদ পরিসংখ্যান এবং কীভাবে তারা আপনার সাইটে পেয়েছিল তা উপস্থাপন করবে। এটি এখন পর্যন্ত সবচেয়ে সহজ সমাধান।
  2. গণনা করতে জাভাস্ক্রিপ্ট ব্যবহার করুন। পৃষ্ঠাটি লোড হয়ে গেলে, আপনার গণনা স্ক্রিপ্টে একটি এজেএক্স অনুরোধ উত্পন্ন করুন। রোবট এবং মাকড়সা জাভাস্ক্রিপ্ট চালায় না।
  3. ব্যবহারকারী এজেন্ট স্ট্রিংয়ে "বট" সনাক্ত করা আসলে মোটামুটি নির্ভরযোগ্য। বিকল্পভাবে, আপনি কেবল গুগলবট, ইয়াহু, এমএসএনবোট ইত্যাদি পরিচিত বটগুলিতে আটকে থাকতে পারেন three এই তিনটি পরীক্ষা করা আপনার বট ট্র্যাফিকের 99% কভার করে। এই পৃষ্ঠায় আরও কিছু রয়েছে তবে এটি বেশ পুরানো দেখাচ্ছে।

আপডেট: Googlebot এবং কিছু গুরুত্বপূর্ণ বট না জাভাস্ক্রিপ্ট এই দিন চালানো। সুতরাং একা # 2 অপশনটি ব্যবহার করা আর কার্যকর নয়। তবে এর অর্থ এই নয় যে এটি # 3 এর সাথে মিলিয়ে ব্যবহার করা বেশ নির্ভরযোগ্য হওয়া উচিত, আপনি জেএস ব্যবহার করে সহজেই বেশিরভাগ বটগুলি বাদ দিতে পারেন, তারপরে সার্ভার-সাইডে জেএস চালানো গুগলবটের মতো বড় বটগুলি বাদ দিতে পারেন।

মন্তব্যে উল্লিখিত হিসাবে আপনি প্রতিটি পৃষ্ঠার জন্য দর্শন প্রদর্শনের জন্য গুগল অ্যানালিটিক্স এপিআই ব্যবহার করার চেষ্টা করতে পারেন।


1 এবং 2 আমার প্রশ্নের সাথে সম্পর্কিত নয়। সম্ভবত আমার জিজ্ঞাসা করা উচিত ছিল "আমি কীভাবে স্ট্যাকচেঞ্জের মত একটি ভিউ কাউন্টার পেতে যা বটগুলি উপেক্ষা করে?" সুতরাং আমার মিথ্যা :-) তবুও খুব সুন্দর তালিকা 3। আপনাকে ধন্যবাদ আমি এই চেক করব।
আইজবার্গ

দুঃখিত, বুঝতে পারবেন না যে আপনি পৃষ্ঠায় দর্শন গণনাটি প্রদর্শন করছেন। সেক্ষেত্রে 2 এবং 3 উভয়ই কার্যকর।
অসন্তুষ্ট গোয়াট

প্রচেষ্টার জন্য আপনাকে ধন্যবাদ। কমপক্ষে আমার জন্য জাভাস্ক্রিপ্ট এর উত্তর কখনই নয় তবে আমি ৩ টি নিয়ে আটকে আছি তবে অনেকগুলি সূচক রয়েছে :-(
আইজবার্গ

আসলে, কিছু বট কিছু জাভাস্ক্রিপ্ট চালায়। আমি পর্দার আকারের সাথে ভিউপোর্টের আকার ট্র্যাক করার জন্য একটি এজ্যাক্স অনুরোধ সেট আপ করেছি। গুগলবোট দুটি ভিন্ন স্ক্রিন আকারের প্রতিবেদন করছে।
toxalot

আমি জানি প্রশ্নটি পুরানো এবং এর সমাধান ইতিমধ্যে আছে তবে গুগল অ্যানালিটিক্স এপিআই যদি এটি কেবলমাত্র মানুষের মতামতের কাউন্টার দেখানোর জন্য ব্যবহার না করে? stackoverflow.com/questions/19484009/...
KeizerBridge

3

আপনি যদি জাভাস্ক্রিপ্টটি ভিউ গণনা করতে ব্যবহার করেন তবে বেশিরভাগ বট এটি চালাবেন না এবং তাই আপনার ভিউ গণনাগুলিতে অন্তর্ভুক্ত করা হবে না। এই উত্তরটি আপনি যা চান তার কাছাকাছি হতে পারে /programming/1973448/how-can-i-count-a-page-views


না আমি জাভাস্ক্রিপ্ট ব্যবহার করছি না। এটি একটি সাধারণ পিএইচপি + মাইএসকিউএল ওয়েবসাইট। তবে যাইহোক উত্তরের জন্য ধন্যবাদ :-)
আইজবার্গ

এই উত্তরটি এত তাড়াতাড়ি ছাড়বেন না। এমনকি কোনও সাইট পিএইচপি + মাইএসকিউএল ব্যবহার করেও, আপনার ভিউ কাউন্টার তৈরি করতে আপনাকে কিছুটা জাভাস্ক্রিপ্ট নির্গত করতে বাধা দেয় না। কাউন্টারটি সরাসরি আউটপুট না করে, '<script> ডকুমেন্ট.উরাইট (<কাউন্টার-কোড কোড>) </script>' এর মতো কিছু আউটপুট করুন যেখানে আপনার কাউন্টার তৈরি করতে যা প্রয়োজন তা <counter-code> is
Itai

@ ইটাই দুঃখিত, তবে আমি আমার দর্শকদের গণনা করতে জাভাস্ক্রিপ্ট ব্যবহার করব না। তবে যাইহোক আপনাকে ধন্যবাদ।
আইজবার্গ

আপনি যদি জাভাস্ক্রিপ্ট ব্যবহার করতে না চান তবে আপনার প্রশ্নে এটি পরিষ্কার করে দিন। যেমনটি বলেছেন, কিছুই পিএইচপি সাইটের জাভাস্ক্রিপ্ট সমাধান সম্পর্কে চিন্তা করতে আমাদের বাধা দেয় না।
টিয়েন ডু

আসলে, কিছু বট কিছু জাভাস্ক্রিপ্ট চালায়। আমি পর্দার আকারের সাথে ভিউপোর্টের আকার ট্র্যাক করার জন্য একটি এজ্যাক্স অনুরোধ সেট আপ করেছি। গুগলবোট দুটি ভিন্ন স্ক্রিন আকারের প্রতিবেদন করছে।
toxalot

3

আমার পদ্ধতির দুটি পাস জড়িত:

  1. ব্যবহারকারী এজেন্ট স্ট্রিংয়ের শুরুর সাথে মিল রেখে কেবল ওয়েব ব্রাউজার এবং কনসোলগুলি ফিল্টার করুন Mozilla|Opera|PSP|Bunjalloo|wii। এই চেকটি স্পুফিং ব্যবহারকারী এজেন্টকে ধন্যবাদ প্রায় সমস্ত ব্রাউজার সনাক্ত করবে
  2. সাধারণ স্টপ স্ট্রিংগুলিতে বটগুলি বাদ দিন bot|crawl|slurp|spider

সুতরাং যদি প্রথম পদক্ষেপটি পাস করা হয় তবে আমরা ধরে নিই যে এটি একটি ব্রাউজার এবং এর পিছনে সত্যিকারের দর্শক রয়েছে। আমি যেমন খুঁজে পেয়েছি যদিও কিছু বট Mozillaসুসংগত হওয়ার ভান করে এবং এটির সাথে তাদের ব্যবহারকারী এজেন্ট স্ট্রিংটি শুরু করে। সে কারণেই দ্বিতীয় পাসটি কার্যকর হতে পারে এবং সেগুলি মুছে ফেলতে পারে।

function isBrowser () {

    return preg_match( '/^(Mozilla|Opera|PSP|Bunjalloo|wii)/i', $_SERVER['HTTP_USER_AGENT'] ) && !preg_match( '/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'] );
}

2

আমি কেবল সাধারণ ব্যবহারকারী এজেন্টকে ব্যতিক্রমকে পার্সিং করে ব্যবহার করি। এটি আমার পৃষ্ঠাগুলিতে যাওয়ার 99% বট থেকে মুক্তি পাবে।

SELECT * FROM `live_visitors` where (
lower(agent) != '%bot%' and
lower(agent) != '%slurp%' and
lower(agent) != '%spider%' and
lower(agent) != '%crawl%' and
lower(agent) != '%archiver%' and
lower(agent) != '%facebook%')

1
এটি সাহায্য করবে না (অন্ততপক্ষে আমার ক্ষেত্রে) কারণ প্রায় প্রতিটি বট আমি এর আচরণ দ্বারা সনাক্ত করতে পারি (খুব দ্রুত ব্রাউজিং, সমস্ত লিঙ্কের কালানুক্রমিক ব্রাউজিং, ...) একটি বৈধ ব্যবহারকারী-এজেন্ট ব্যবহার করে। তবে অন্যান্য প্রকল্পগুলির জন্য ভাল ধারণা।
আইজবার্গ

2

আপনি কোনও চিত্রকে কাউন্টার হিসাবে ব্যবহার করতে পারেন, এক্ষেত্রে এটি বট গণনা করবে না এবং পৃষ্ঠার নামটি চিত্রের নাম সহ ক্যোয়ারী হিসাবে পাস হবে

আমি এটি img.php এ ব্যবহার করছি যা ডাটাবেসে পৃষ্ঠা ভিউ আপডেট করে:

<?php
$xnt = $_GET["ID"]; if (isset($xnt) && is_numeric($xnt)) {
$DBServer = "localhost"; $DBUser = "xxx"; $DBPass = "xxx"; $DBaze = "xxx";
$conn = mysqli_connect($DBServer, $DBUser, $DBPass, $DBaze); 
mysqli_query($conn, "UPDATE stats SET stats_vz=stats_vz+1 WHERE stats_id=".$xnt);
mysqli_close($conn);}
$im = @imagecreatetruecolor(1, 1); imagesavealpha($im, true); imagealphablending($im, false); $white = imagecolorallocatealpha($im, 255, 255, 255, 127); imagefill($im, 0, 0, $white);
header("Content-type: image/png"); imagepng($im); imagedestroy($im);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.