Monthly Archives: 8月 2010

You are browsing the site archives by month.

Google急上昇ワードをRubyで取得してみる

急上昇ワード取得用URL
http://www.google.co.jp/m/services/trends/get

このURLに[openuri]アクセスしてXMLで取得したレスポンスを[hpricot]でパースするだけ。

XMLのサンプル。
(なぜかこのとき「恥骨」が1位)

<rtt version="1.0"> 
  <update>2010-08-24T22:30:05-07:00</update> 
  <language>ja</language> 
  <country>jp</country> 
  <item> 
    <query>恥骨</query> 
    <rank>1</rank> 
    <score>2157.00</score> 
    <snippet src="http://ja.wikipedia.org/wiki/%E6%81%A5%E9%AA%A8">恥骨(ちこつ)(英名pubis)(羅名pubis、os.pubis)は、四肢動物の腰帯を構成する骨 の一つである。 ...</snippet> 
    <landing_page url="http://www.google.com/search?trndsrc=zeitgeist&amp;trndrnk=1&amp;trndutm=4c74aa5d&amp;trndscr=2157&amp;q=%E6%81%A5%E9%AA%A8&amp;gl=jp&amp;hl=ja&amp;lr=lang_ja"/> 
  </item>
</rtt>

そしてキーワードを取得して、とりあえず配列に突っ込むサンプル

require 'hpricot'
require 'open-uri'

words = Array.new

#APIからすべての内容を取得
all = Hpricot(open("http://www.google.co.jp/m/services/trends/get"))
#ワードのみを取り出す
(all/:query).each do |link|
  word = "#{link.inner_html}"
  words.push(word)
end

(Symfony)Chromeでエラー

GoogleChromeで見るとなぜか500エラー。。。

Safariも同様。

ちなみにSymfonyのバージョンは1.1.1。

こんなものが。
Changeset 11163

// skip if no acceptable content types or browsers
// if (isset($acceptableContentTypes[0]) && ‘text/xml’ != $acceptableContentTypes[0])
if (isset($acceptableContentTypes[0]) && (‘text/xml’ != $acceptableContentTypes[0] && ‘application/xml’ != $acceptableContentTypes[0]))
{
$this->setRequestFormat($this->getFormat($acceptableContentTypes[0]));
}

修正してみたらうまくいきました。

suでrootになれるように設定する

suでrootになれるように設定するメモ

/etc/groupファイルを編集して、wheelグループにユーザを追加。

vi /etc/group

(user)をsuになれるように設定する場合

wheel:*:0:root,user

GoogleAnalyticsのAPIをPHPで使ってみる [トラッキングデータ取得編]

前回に引き続き、今回は実際のトラッキングデータを取得してみる。

⇒ライブラリはココ

サンプルのコードを元に書いてみました。

とりあえず、日別の訪問者数、PV数を取得してみる。

<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<?php
define('ga_email','***********');
define('ga_password','********');
define('ga_profile_id','********');

require 'gapi.class.php';

$ga = new gapi(ga_email,ga_password);

$ga->requestReportData(ga_profile_id,array('date'),array('pageviews','visits'), 'date');
?>
<table>
<tr>
  <th>DATE</th>
  <th>Pageviews</th>
  <th>Visits</th>
</tr>
<?php
foreach($ga->getResults() as $result):
?>
<tr>
  <td><?php echo $result ?></td>
  <td><?php echo $result->getPageviews() ?></td>
  <td><?php echo $result->getVisits() ?></td>
</tr>
<?php
endforeach
?>
</table>

<table>
<tr>
  <th>Total Results</th>
  <td><?php echo $ga->getTotalResults() ?></td>
</tr>
<tr>
  <th>Total Pageviews</th>
  <td><?php echo $ga->getPageviews() ?>
</tr>
<tr>
  <th>Total Visits</th>
  <td><?php echo $ga->getVisits() ?></td>
</tr>
<tr>
  <th>Results Updated</th>
  <td><?php echo $ga->getUpdated() ?></td>
</tr>
</table>
</body>
</html>

とりあえず、resultをprint_rしてみると、こんな感じ。

gapi Object
(
    [auth_token:private] => XXXXXXXXXXXXX
    [account_entries:private] => Array
        (
        )

    [account_root_parameters:private] => Array
        (
        )

    [report_aggregate_metrics:private] => Array
        (
            [pageviews] => 56230
            [visits] => 14619
        )

    [report_root_parameters:private] => Array
        (
            [updated] => 2010-08-18T01:48:03.913-07:00
            [generator] => Google Analytics
            [generatorVersion] => 1.0
            [totalResults] => 32
            [startIndex] => 1
            [itemsPerPage] => 30
            [profileId] => 17170169
            [webPropertyId] => XXXXXXXX
            [accountName] => XXXXXXXX
            [startDate] => 2010-07-18
            [endDate] => 2010-08-18
        )

    [results:private] => Array
        (
            [0] => gapiReportEntry Object
                (
                    [metrics:private] => Array
                        (
                            [pageviews] => 433
                            [visits] => 106
                        )

                    [dimensions:private] => Array
                        (
                            [date] => 20100814
                        )

                )

            [1] => gapiReportEntry Object
                (
                    [metrics:private] => Array
                        (
                            [pageviews] => 445
                            [visits] => 148
                        )

                    [dimensions:private] => Array
                        (
                            [date] => 20100808
                        )

                )

            [2] => gapiReportEntry Object
                (
                    [metrics:private] => Array
                        (
                            [pageviews] => 470
                            [visits] => 133
                        )

                    [dimensions:private] => Array
                        (
                            [date] => 20100718
                        )

                )
            (以下省略....)
        )
)

表示したい軸・指標はここにあるやつかな。
Dimensions & Metrics Reference

意外と簡単。

GoogleAnalyticsのAPIをPHPで使ってみる [アカウントデータ取得編]

使ったライブラリはこれ。

gapi-google-analytics-php-interface

サンプルがあったので使ってみました。

まずはアカウント情報の取得

<?php

define('ga_email','************');
define('ga_password','*********');

require 'gapi.class.php';

$ga = new gapi(ga_email,ga_password);

// アカウントデータを取得
$ga->requestAccountData();

foreach($ga->getResults() as $result)
{
  echo "プロファイルID:".$result->getProfileId()."<br />";
  echo "アカウントID:".$result->getAccountId()."<br />";
  echo "アカウント名:".$result->getAccountName()."<br />";
  echo "ウェブプロパティID:".$result->getWebPropertyId()."<br />";
  echo "タイトル:".$result->getTitle()."<br />";
}
?>

ちなみに結果データをprint_rしてみると以下のようなデータがとれた。

gapiAccountEntry Object (
  [properties:private] => Array ( 
    [accountId] => XXXXXX
    [accountName] => XXXXXX
    [profileId] => XXXXXX
    [webPropertyId] => XXXXXX
    [currency] => USD
    [timezone] => Asia/Tokyo
    [title] => XXXXXX
    [updated] => 2010-03-09T21:00:30.453-08:00
  )
) 

次は実際のデータを取ってみよう。