1
0

Analysis.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace wx\miniprogram;
  3. use ErrorException;
  4. use wx\Base;
  5. /**
  6. * 小程序数据分析
  7. *
  8. * @method json getVisitPage() static 获取用户访问小程序日留存
  9. * @method json getMonthlyRetain() static 获取用户访问小程序月留存
  10. * @method json getWeeklyRetain() static 获取用户访问小程序周留存
  11. * @method json getDailySummary() static 获取用户访问小程序数据概况
  12. * @method json getDailyVisitTrend() static 获取用户访问小程序数据日趋势
  13. * @method json getMonthlyVisitTrend() static 获取用户访问小程序数据月趋势(能查询到的最新数据为上一个自然月的数据)
  14. * @method json getWeeklyVisitTrend() static 获取用户访问小程序数据周趋势
  15. * @method json getPerformanceData() static 获取小程序启动性能,运行性能等数据。
  16. * @method json getUserPortrait() static 获取小程序新增或活跃用户的画像分布数据。时间范围支持昨天、最近7天、最近30天。其中,新增用户数为时间范围内首次访问小程序的去重用户数,活跃用户数为时间范围内访问过小程序的去重用户数。
  17. * @method json getVisitDistribution() static 获取用户小程序访问分布数据
  18. * @method json getVisitPage() static 访问页面。目前只提供按 page_visit_pv 排序的 top200。
  19. */
  20. class Analysis extends Base
  21. {
  22. private $requestUrl = [
  23. 'getVisitPage' => 'https://api.weixin.qq.com/datacube/getweanalysisappidvisitpage?access_token=',
  24. 'getMonthlyRetain' => 'https://api.weixin.qq.com/datacube/getweanalysisappidmonthlyretaininfo?access_token=',
  25. 'getWeeklyRetain' => 'https://api.weixin.qq.com/datacube/getweanalysisappidweeklyretaininfo?access_token=',
  26. 'getDailySummary' => 'https://api.weixin.qq.com/datacube/getweanalysisappiddailysummarytrend?access_token=',
  27. 'getDailyVisitTrend' => 'https://api.weixin.qq.com/datacube/getweanalysisappiddailyvisittrend?access_token=',
  28. 'getMonthlyVisitTrend' => 'https://api.weixin.qq.com/datacube/getweanalysisappidmonthlyvisittrend?access_token=',
  29. 'getWeeklyVisitTrend' => 'https://api.weixin.qq.com/datacube/getweanalysisappidweeklyvisittrend?access_token=',
  30. 'getPerformanceData' => 'https://api.weixin.qq.com/wxa/business/performance/boot?access_token=',
  31. 'getUserPortrait' => 'https://api.weixin.qq.com/datacube/getweanalysisappiduserportrait?access_token=',
  32. 'getVisitDistribution' => 'https://api.weixin.qq.com/datacube/getweanalysisappidvisitdistribution?access_token=',
  33. 'getVisitPage' => 'https://api.weixin.qq.com/datacube/getweanalysisappidvisitpage?access_token=',
  34. ];
  35. public function __call($method, $arguments)
  36. {
  37. if (!isset($this->requestUrl[$method])) {
  38. throw new ErrorException('Method ' . $method . ' not exists');
  39. }
  40. $num = count($arguments);
  41. if ($num != 2) {
  42. throw new ErrorException('Method ' . $method . ' needs two arguments. ' . $num . ' arguments given.');
  43. }
  44. $url = $this->requestUrl[$method] . $arguments[0];
  45. $data = $this->curl($url, json_encode($arguments[1]));
  46. return $data;
  47. }
  48. }