2013-07-17

[ GAS ]GoogleスプレッドシートからGAの数字を拾ってきての超ざっくりメモ

作業を簡略化させるためにGoogleスプレッドシートからGoogle Apps Scriptを使ってGAから数字を取得するものを使っていたけど、なぜか動かなくなったので適当にネットを見ながら新しく書き直したのでポイントだけメモ
※なぜ動かなくなったのかは調べない…
※手抜きなメモなので細かくはメモらない。それぞれキーワードでググった方が親切なのたくさん出てくるし…

準備

  1. スプレッドシートを作って[ ツール - スクリプト エディタ... ]
  2. スクリプトエディタの[ リソース - Google API を使用... ]
  3. "Google Analytics API"をONにする。プルダウンは"v3"のまま
  4. "API キー"は"Google API コンソール"にアクセス、左メニューの"API Access"にアクセスして"Simple API Access"の"API key"の値をコピペ

データの取得
"Analytics.Data.Ga.get"に以下の引数を渡すとデータが帰ってきた

var ret = Analytics.Data.Ga.get(
    tableId
    , '開始日'
    , '終了日'
    , 'メトリックス達'
    , {その他オプション達}
);
tableIDにはGAにアクセスした時のURLにあるp99999999のp以降の数字を"ga:"の後ろに付けた文字列。
メトリックス達は、カンマ区切りで複数が指定可能。
その他オプション達には以下のようなものが設定できるらしい。
{
    'dimensions': 'ディメンジョン達'
    , 'sort': 'ソートに使うメトリックス達'
    , 'segment', 'セグメントさん'
    , 'filters', 'フィルターさん'
    , 'start-index', '1行目にするデータの行番号'
    , 'max-results', '最大件数'
}
ディメンジョン達やソートに使うメトリックス達はカンマ区切りで複数が指定可能。
自分が使ったのは、メトリックスに"ga:visits"、ディメンジョンに"ga:browser"、ソートはga:visitsを降順で欲しかったから"-ga:visits"。

データの利用
上記で取得してきたデータは以下のような感じで利用できた

// ga:visitsの総数
var total_visits = ret.getTotalsForAllResults()[ 'ga:visits' ];
// ga:browserを配列として取得
var ret_rows = ret.getRows();
// ループして処理
for( var i = 0, m = ret_rows.length; i < m; i++ ){
    // ga:browser
    Logger.log( rows[ i ][ 0 ] );
    // ga:visits
    Logger.log( rows[ i ][ 1 ] ):
}

メトリックス達とかディメンジョン達については以下を参照。
Dimensions & Metrics Reference

その他詳しい情報は、適当に調べて。。。

2013-07-12

[ GA ]Google Analytics, Universal Analyticsを使ってonclickした際のページ記録やイベント記録するための方法

クリック数とかアウトバウンドリンクを 【ページビューへ記録していた】 を書き換える場合

今まで1
<a href="#" onclick="javascript: pageTracker._trackPageview('それっぽいURL');">テキスト</a>

今まで2
<a href="#" onclick="javascript: _gaq.push(['_trackPageview','それっぽいURL']);">テキスト</a>

Universal Analytics
<a href="#" onclick="javascript: ga( 'send', {'hitType':'pageview', 'page':'それっぽいURL'} );">テキスト</a>

クリック数とかアウトバウンドリンクを 【イベントへ記録していた】 を書き換える場合

今まで1
<a href="#" onclick="javascript: pageTracker._trackEvent('category', 'action', 'label')">テキスト</a>

今まで2
<a href="#" onclick="javascript: _gaq.push(['_trackEvent', 'category', 'action', 'label'])">テキスト</a>

Universal Analytics
<a href="#" onclick="javascript: ga( 'send', 'event', {'eventCategory':'category', 'eventAction':'action', 'eventLabel':'label'} );">テキスト</a>

それ以上の詳しい事は公式ドキュメントを。(※Universal Analyticsの記述でイベント記録してみてる)
Introduction to Analytics.js
Method Reference - Web Tracking (analytics.js)
Analytics.js Field Reference

※2013-07-25追記
上記公式ドキュメントへのアウトバンドリンクのコード

<a href="https://developers.google.com/analytics/devguides/collection/analyticsjs/" target="_blank" onclick="javascript: ga( 'send', 'event', {'eventCategory':'click', 'eventAction':'Outbound Links', 'eventLabel':'Introduction to Analytics.js'} );">Introduction to Analytics.js</a><br>
<a href="https://developers.google.com/analytics/devguides/collection/analyticsjs/method-reference" target="_black" onclick="javascript: ga( 'send', 'event', {'eventCategory':'click', 'eventAction':'Outbound Links', 'eventLabel':'Method Reference - Web Tracking (analytics.js)'} );">Method Reference - Web Tracking (analytics.js)</a><br>
<a href="https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference" target="_blank" onclick="javascript: ga( 'send', 'event', {'eventCategory':'click', 'eventAction':'Outbound Links', 'eventLabel':'Analytics.js Field Reference'} );">Analytics.js Field Reference</a>
GAではこんな感じで記録されてた

※2013-10-07変更
検索サイトで内容をわかりやすくするためにタイトル変更

2013-07-05

[ jQuery ]Deferredオブジェクトで処理をチェーン化

非常に今さらだけど
jQueryのDeferredオブジェクトで処理をチェーン化すると
animateとかのcompleteのソースが見やすくなると知ったのでメモ。

jQuery Deferred Object

ajaxでも使えるのとか試してあるけどBloggerじゃサンプルのjsonファイルおけないので割愛…
そのうちどっかのAPIから拾えるjsonで作ってみようかなと…

2013-07-03

[ js ]ツイートボタンが表示されない件

作ってた共通jsが表示するツイートボタンがどうしても表示されなくて調べてたら、
ページ内にフォローするボタンの表示処理があった。。。

共通jsはdocumentのonload後に処理するようにしてたから、先に

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

が呼ばれちゃって、動作をスルーするみたい。。。

上記jsは一回書けば済むものだから、
ページ内のフォローするボタンの所からは削ってくれというしかないけど、
もう一度動かす方法はないのだろうか

<追記>
テストページ作ってみた
documentのonloadでツイートボタンが処理されないテスト1
documentのonloadでツイートボタンが処理されないテスト2
archive