質問編集履歴

3

$ge->fetchの説明のコメント追加

2018/06/28 00:46

投稿

threeaster
threeaster

スコア14

test CHANGED
File without changes
test CHANGED
@@ -44,7 +44,7 @@
44
44
 
45
45
  for($i = 1; $i < $totalResults; $i+= 10000) {
46
46
 
47
- $results = $ga->fetch('2017-01-01', date('Y-m-d'), 'ga:pageviews', ['dimensions' => 'ga:pagePath', 'filters' => 'ga:pagePath=@article', 'sort' => '-ga:pageviews', 'start-index'=>$i, 'max-results' => $request_num]);
47
+ $results = $ga->fetch('2017-01-01', date('Y-m-d'), 'ga:pageviews', ['dimensions' => 'ga:pagePath', 'filters' => 'ga:pagePath=@article', 'sort' => '-ga:pageviews', 'start-index'=>$i, 'max-results' => $request_num]); //google analyticsから2017-01-01から今日までで、articleをurlに含むview数の情報を、view数が大きい方から数えて、$i番目から$request_num件取得する
48
48
 
49
49
  $totalResults = $results->totalResults;
50
50
 

2

自分の環境のurlが出ていたのを修正

2018/06/28 00:46

投稿

threeaster
threeaster

スコア14

test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  //$rowは[url, view数]という配列になっている
54
54
 
55
- $name = get_name($row[0]); // get_nameは例えば$row[0]がhttp://woman.mynavi.local/article/170101/のとき、170101を取得する。実際にはurlのフォーマットが違う場合や、ページネーションを無視したりなどがあり、いろいろやっている。
55
+ $name = get_name($row[0]); // get_nameは例えば$row[0]がhttp://sample.com/article/170101/のとき、170101を取得する。実際にはurlのフォーマットが違う場合や、ページネーションを無視したりなどがあり、いろいろやっている。
56
56
 
57
57
  $query = new WP_Query(["name" => $name]);
58
58
 

1

やっている処理を追加

2018/06/28 00:39

投稿

threeaster
threeaster

スコア14

test CHANGED
File without changes
test CHANGED
@@ -23,3 +23,55 @@
23
23
  ```
24
24
 
25
25
  思い切り単純化すると、上のコードで、出力されるメモリ量がどんどん増えていってしまいます。
26
+
27
+
28
+
29
+ (6/28追記)
30
+
31
+ これでやっている処理は以下のようになります。
32
+
33
+ ```
34
+
35
+ require_once( __DIR__.'/../DocumentRoot/wp-load.php' );
36
+
37
+ // ここにgoogle analytics用のLoaderをincludeするinclude文が入る
38
+
39
+ $ga = \Loader::get_analytics();
40
+
41
+ $totalResults = 1000000; // 仮のtotalResults
42
+
43
+ $page_views = [];
44
+
45
+ for($i = 1; $i < $totalResults; $i+= 10000) {
46
+
47
+ $results = $ga->fetch('2017-01-01', date('Y-m-d'), 'ga:pageviews', ['dimensions' => 'ga:pagePath', 'filters' => 'ga:pagePath=@article', 'sort' => '-ga:pageviews', 'start-index'=>$i, 'max-results' => $request_num]);
48
+
49
+ $totalResults = $results->totalResults;
50
+
51
+ foreach($results->rows as $row){
52
+
53
+ //$rowは[url, view数]という配列になっている
54
+
55
+ $name = get_name($row[0]); // get_nameは例えば$row[0]がhttp://woman.mynavi.local/article/170101/のとき、170101を取得する。実際にはurlのフォーマットが違う場合や、ページネーションを無視したりなどがあり、いろいろやっている。
56
+
57
+ $query = new WP_Query(["name" => $name]);
58
+
59
+ $post_id = $query->post->ID;
60
+
61
+ if($page_views[$post_id]){
62
+
63
+ $page_views[$post_id] += $row[1];
64
+
65
+ }else {
66
+
67
+ $page_views[$post_id] = (int)$row[1];
68
+
69
+ }
70
+
71
+ }
72
+
73
+ }
74
+
75
+ var_dump($page_views); // まだ未実装だが最終的にはこれをdbに保存する
76
+
77
+ ```