سؤال

أرغب في قياس مقدار الوقت الذي يقضيه المستخدم على موقع الويب الخاص بي.إنه ضروري لموقع مجتمع حيث يمكنك أن تقول:"لقد قضى المستخدم X 1397 دقيقة هنا."

بعد قراءة بعض الوثائق حول هذا الموضوع، أعلم أنه لا توجد طريقة مثالية لتحقيق ذلك.لا يمكنك قياس الوقت المحدد.لكنني أبحث عن نهج يعطي تقديرًا جيدًا.

كيف يمكنك أن تفعل هذا؟أفكاري:1) إضافة 30 ثانية إلى عداد الوقت عبر الإنترنت في كل مشاهدة للصفحة.2) في كل عرض للصفحة، احفظ الطابع الزمني الحالي.في العرض التالي، أضف الفرق بين الطابع الزمني المحفوظ والطابع الزمني الحالي إلى عداد الوقت عبر الإنترنت.

أستخدم PHP وMySQL إذا كان هذا مهمًا.

آمل أن تتمكن من مساعدتي.شكرا لك مقدما!

هل كانت مفيدة؟

المحلول

هناك عاملان يعملان ضدك -

  1. يمكنك فقط جمع إحصائيات لحظية (مشاهدات الصفحة)، ولا توجد طريقة معقولة لاكتشاف ما حدث بين تلك النقاط؛

  2. وحتى في تلك الحالة، ستحسب وقت نافذة المتصفح، وليس وقت المستخدم؛يمكن للمستخدمين بسهولة فتح علامات تبويب متعددة على مثيلات متصفح متعددة في وقت واحد.

أظن أن أفضل تقدير تقريبي لديك هو إسناد قدر متوسط ​​من وقت الاهتمام لكل نقرة ثم الضرب.ولكن بعد ذلك يمكنك أيضًا قياس النقرات.

نصائح أخرى

ربما لا معنى له ... ماذا لو كان لدى المستخدم ثلاث علامات تبويب مفتوحة و "زيارة" موقعك أثناء العمل فعليًا على علامات التبويب الأخرى؟ هل تريد حساب ذلك؟

لماذا لا تقاس فقط ما يمكن قياسه بالفعل؟: الإحالات ، طرق عرض الصفحة ، النقر إلى الخ ، إلخ.

يتماشى جمع هذه الأنواع من هذه الأنواع وإعلانها تمامًا مع بقية عالم مقاييس الويب.

علاوة على ذلك - إذا كان شخص ما يطرح صفحة ويب ، على سبيل المثال ، اذهب في عطلة لمدة أسبوعين ، أفضل طريقة لحسابها؟

ما يمكنك فعله هو التحقق مما إذا كان المستخدم نشط على الصفحة ثم أرسل طلب AJAX إلى الخادم الخاص بك في كل × ثوانٍ (هل ستكون 60 ثانية على ما يرام؟) أن المستخدم نشط أم لا على الصفحة.

بعد ذلك ، يمكنك استخدام الطريقة الثانية التي ذكرتها لحساب الفرق الزمني بين طوابع زمنية "نشطة" لا يتم فصلها بأكثر من فترات أو فترتين. إضافة هذه من شأنها أن تعطي الوقت الذي يقضيه المستخدم على موقعك.

تتضمن Google Analytics قوية جدًا تسجيل الحدث/التتبع آلية يمكنك تخصيصها والاستفادة منها في الحصول على قياسات جيدة لسلوك المستخدم - سأبحث في ذلك

الحل البسيط للغاية هو استخدام iframe المخفي الذي يقوم بتحميل صفحة ويب PHP بشكل دوري. تقوم صفحة الويب المحملة بتسجيل وقت البدء (إذا لم يكن موجودًا) ووقت التوقف. عندما يغادر الشخص الصفحة ، تُركت في الوقت الذي جاء فيه الشخص لأول مرة إلى الموقع وآخر مرة كان هناك. في هذه الحالة ، يتم تحديث الطابع الزمني كل 3 ثوان.

يمكنني استخدام الملفات لعقد معلومات السجل. يتكون اسم الملف الذي أستخدمه من iPaddress.htm لمدة شهر

مثال رمز Iframe PHP. ضع هذا في yourwebsite/youranalyticsiframecode.php:

<?php
  // get the IP address of the sender
  $clientIpAddress=$_SERVER['REMOTE_ADDR'];
  $folder = "yourAnalyticsDataFolder";
  // Combine the IP address with the current date.
  $clientFileRecord=$folder."/".date('d-M-Y')."  ".$clientIpAddress;

  $startTimeDate = "";

  // check to see if the folder to store analytics exists
  if (!file_exists($folder))
  {
    if (!mkdir($folder))
      return;  // error - just bail

  }


  if (file_exists($clientFileRecord) )
  {
    //read the contents of the clientFileRedord
    $lines = file($clientFileRecord);

    $count = 0;

    // Loop through our array, show HTML source as HTML source; and line numbers too.
    foreach ($lines as $line_num => $line)
    {
      echo($line);
      if ($count == 0)
        $startTimeDate = rtrim( $line );
      $count++;

    }
  }

  if ($startTimeDate == "")
    $startTimeDate = date('H:i:s d-M-Y');

  $endTimeDate = date('H:i:s d-M-Y');

  // write the start and stop times back out to the file
  $file = fopen($clientFileRecord,"w");
  fwrite($file,$startTimeDate."\n".$endTimeDate);
  fclose($file);


?>

javaScript لإعادة تحميل iframe بشكل دوري في صفحة الويب الرئيسية:

<!-- Javascript to reload the analytics code -->
<script>
  window.setInterval("reloadIFrame();", 3000);

  function reloadIFrame() {
    document.getElementById('AnalyticsID').src = document.getElementById('AnalyticsID').src
      //          document.frames["AnalyticsID"].location.reload();
  }
</script>

يبدو أن iframe في صفحة الويب الرئيسية:

<iframe id="AnalyticsID" name="AnalyticsID" src="http://yourwebsite/yourAnalyticsiFrameCode.php" width="1"
height="1" frameborder="0" style="visibility:hidden;display:none">
</iframe>

طريقة بسيطة للغاية لعرض ملفات الطوابع الزمنية:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>
  <title></title>
</head>

<body>
Analytics results
<br>
<?php
  $folder = "yourAnalyticsDataFolder";
  $files1 = scandir($folder);
  // Loop through the files
  foreach ($files1 as $fn)
  {
    echo ($fn."<br>\n");
    $lines = file($folder."/".$fn);
    foreach ($lines as $line_num => $line)
    {
      echo("  ".$line."<br>\n");
    }
    echo ("<br>\n <br>");

  }

?>
</body>

</html>

تحصل على صفحة نتائج مثل هذا:

22 مارس 2015 104.37.100.30

18:09:03 22 مارس 2015

19:18:53 22 مارس 2015


22 مارس 2015 142.162.20.133

18:10:06 22 مارس 2015

18:10:21 22 مارس 2015

أعتقد أن جانب JavaScript Analytics من جانب العميل هو الحل لهذا.

لديك Google Analycs ، بيويك, ، وهناك أيضًا أدوات إعلانات تجارية في JS التي تفعل ذلك بالضبط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top