[WordPress] GA(Google Analytics)를 이용한 인기글 보여주기

hans
UFOfactory org
Published in
6 min readApr 21, 2016

GA(Google Analytics)API를 이용해서 데이터를 가져오는 방법은 많이 있지만 비교적 간단한(?) 방법으로 인기글을 가져오는 방법을 알아보자.

1. GA 계정을 생성한다. (https://www.google.com/analytics/)

2. 워드프레스 GA 플러그인을 설치한다. 앗.. 회사가 Yoast에서 MonsterInsights로 변경되었다. (https://wordpress.org/plugins/google-analytics-for-wordpress)

3. GA와 계정을 연결한다. 플러그인 활성화 후 Insights > Settings > Authenticate with your Google account에서 계정연결이 가능하다.

자, 이제 준비가 끝났다. 인기글을 가져와 보자. 플러그인 내부의 코드를 이용해서 작업하기 때문에 따로 인증과정 없이 비교적 간단하게 데이터를 가져올 수 있다.

데이터를 가져오기 전에 먼저 GA Query를 만들어 보자. (https://ga-dev-tools.appspot.com/query-explorer/)

이 사이트에 접속하여 GA 계정으로 인증과정을 거치면 다음과 같은 화면을 볼 수 있다.

지난 3월 한달간의 PageView가 많은 글 순으로 제목과 Url로 형태의 결과를 받는 Query를 만들었다. “Run Query”를 누르면 아래와 같이 Query를 얻을 수 있다.

이제 functions.php 파일에 다음 코드를 추가하자.

function get_ga_data( $query ) {
$path = dirname( GAWP_FILE );
$files_to_include = array(
'Yoast_Google_CacheParser' => '/vendor/yoast/api-libs/google/io/Google_CacheParser.php',
'Yoast_Google_Utils' => '/vendor/yoast/api-libs/google/service/Google_Utils.php',
'Yoast_Google_HttpRequest' => '/vendor/yoast/api-libs/google/io/Google_HttpRequest.php',
'Yoast_Google_IO' => '/vendor/yoast/api-libs/google/io/Google_IO.php',
'Yoast_Google_WPIO' => '/vendor/yoast/api-libs/google/io/Google_WPIO.php',
'Yoast_Google_Auth' => '/vendor/yoast/api-libs/google/auth/Google_Auth.php',
'Yoast_Google_OAuth2' => '/vendor/yoast/api-libs/google/auth/Google_OAuth2.php',
'Yoast_Google_Cache' => '/vendor/yoast/api-libs/google/cache/Google_Cache.php',
'Yoast_Google_WPCache' => '/vendor/yoast/api-libs/google/cache/Google_WPCache.php',
'Yoast_Google_Client' => '/vendor/yoast/api-libs/google/Google_Client.php',
'Yoast_Api_Google_Client' => '/vendor/yoast/api-libs/class-api-google-client.php',
);

foreach ( $files_to_include as $class => $file ) {
if ( ! is_admin() || ! class_exists( $class, true ) ) {
require_once $path . $file;
}
}

$response = Yoast_Google_Analytics::get_instance()->do_request( $query );

if ( empty( $response['body']['rows'] ) ) {
return array();
}
$list = $response['body']['rows'];

return $list;
}

GA 데이터를 가져오기 위해서는 이전에 구한 Query를 이용하여 get_ga_data 함수를 호출하면 된다.

$query = ‘https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A1130xxxxxx&start-date=2016-03-01&end-date=2016-03-31&metrics=ga%3Apageviews&dimensions=ga%3ApagePath%2Cga%3ApageTitle&sort=-ga%3Apageviews’;$favorite_list = get_ga_data($query);

결과는 페이지 뷰가 높은 순으로 얻을 수 있으며 한번 가공 후 사용하면 된다. (글뿐만 아니라 스태틱 페이지나 404 페이지 등도 포함될 수 있다.)

이 함수는 시간이 오래 걸리기 때문에 하루 한번정도 cron 등을 이용해서 호출하고 결과는 파일이나 DB등에 넣어서 사용하면 된다.

--

--