2014年2月に変更のあったWebmasterヘルプ

毎月簡易な調査しかしていないのですが、今月も下旬にさしかかろうというタイミングで3月1日にスナップしたデータと2月1日にスナップしたデータで検証しました。

結論から言えば、2月中も軽微な変更しかされておりません。
変更のあったページタイトルはこちらです。

・ウェブマスター向けガイドライン
・メタ タグによるサイトへのアクセスのブロック
・robots.txt ファイルを使用してページをブロックまたは削除する
・rel="alternate" hreflang="x" について
・モバイル サイトの開発

以上が文言等に変化のあったページでした。
「ウェブマスター向けガイドライン」の中ではリッチスニペットの悪用はより優先度が高くなったような印象です。
また、hreflangまわりも少し記述が足されて情報が増しました。

hreflangと言えば、毎回思い出すサイトがredbullのサイトです。

TOPページから全てのページに対して、ちゃんとhreflangを設定しています。

ページによっては海外サイトでも存在しない言語があります。

このページは以下の2つしか設定がなく、少し不思議だと思っているのですが、言語の「en」指定だけでなく地域指定の「US」も同時にかけています。
一般的な言語指定のみでも良いような気がしますが、意図的なものなのか・・・それともシステム的なものなのか・・・

どちらにしても、hreflangをきちんと設定することで多言語サイト間でのアクセス数やコンバージョンのカニバリズムを防ぐ施策として、とてもキレイなサイトだと思っています。
ぜひ一度見てみてください。

特定の日以降Google検索結果にページを表示したくない場合は「unavailable_after」タグを使う

今日のマット・カッツ動画では"eコマースサイトで特定の商品が既に購入できなくなった場合の対処方法"について質問が来ています。



対処の仕方として、簡単に説明すると

小規模サイト : ページは落とさず商品画像等は見えるようにしておき、現在購入出来る商品をを同時に見せる。

中規模サイト(100点以上10,000点未満) : 404を返す

大規模サイト : unavailable_afterタグを利用すべし(過去のウェブマスターブログ)。オークションサイトや生鮮食品など検索結果から落とさなければならない場合は、商品追加と同時にunavailable_afterタグを入れる。

ここでポロッと言っているのが
Google currently only supports unavailable_after for Google web search results.
ということ。
特定の日を指定した検索除外は、このタグを利用するしか無いわけですね。

Googleヘルプ
日付に関するRFC

Yahoo Pipesで動的な「年」や「月」が入ったURLを作成してXPathする

久しぶりにYahoo Pipesを使うとどうすれば良かったのか分からないですね。

今回作りたいのは、こんなURL。
http://ドメイン/[year]/[month]/

で作ったのがこういう感じです。

「Date Formatter」をString操作のように使っていて、それを「URL Builder」でPathとして渡す。
「Date Builder」で「today」とか、結構柔軟な値を入れられるのが良いですね。

他にも簡単な方法があるとは思いますが、ご参考になれば。

【Google Tag Manager】先週リリースされたJavascript Error Eventlistnerを試してみる

先週の金曜日、Google Tag Manager(GTM)のタグにJavascript Error Eventlistenerが追加されました。
以前、解析界隈でJavascriptのエラーをtry/catchを使ってエラー計測出来るよねという話があったのですが、タイムリーな事にGoogleが正式にイベントリスナーとしてリリースをしたという感じです。
まだヘルプの更新はされていないのですが、使い方は通常のイベントリスナーと同じように設定します。とはいっても、毎回設定を忘れてしまうのでGoogle検索からスタートしてしまうダメな感じなのですが・・・(笑

1.タグでJavascript Error Eventlistenerを設定します。



2.マクロを設定します。
「Javascript Error Eventlistener」を設定すると、いくつかの変数を取得出来るようになります。
海外の情報だと・・・
「gtm.errorMessage」にjavascriptのエラーメッセージ、「gtm.errorLineNumber」にエラー行ナンバーがInt型で返ってくるようです。
「gtm.errorUrl」というものもあるようなのですが。

今回はjavascriptのエラー内容を取得したいので、単純に「gtm.errorMessage」だけをdataLayerとして指定します。


※エラー行数なども変数に指定して、一緒にエラーの状況を取得出来るようにできるはずです。


3.エラーをイベントで取得する。



発火条件は、eventがgtm.pageErrorと等しい場合です。



そんな感じで、今回はテスト的な感じですがサクッとエラーメッセージを取得できました。



 ぜひ試してみてください。


【参考】
Google Tag Managerに関するまとめ

海外でのモバイルデバイスシェアと今後の予測(Mobile Mix™ Reports)

millennial mediaの調査では、広告が閲覧されたデバイスの比率を2012年と2013年で比較した場合、スマートフォンの比率が大きいものの、全体で見ると比率は低下したということでした。

詳細なデータはこちらに掲載されています。
Mobile Mix™ Reports


 主に「タブレット」がだいぶシェアを伸ばしていることが要因となっていますが、一部ゲーム端末などが含まれているようです。

また同時に、今後の伸びる予測が以下のように掲載されています。


今後のマーケティングを考える上で、日本での端末動向も海外と同じような動きを今後辿ることになるのでしょうか?

OSシェアでは2013年はAndroid、iOSの2強のシェアがより強まっています。

Google Tag Manager(GTM)でDOMの準備が完了後、複数の回Eventを飛ばす

タイトルはうまく付けられなかったのですが、ある特定の1ページを読み込んだ時にdataLayerを読み込んで、例えばカスタム変数として処理を行う事は簡単に行えます。

例えば、こんなdataLayerをページ内に埋め込んでおいて、Analytics側とGTM側でカスタム変数を設定しておけば問題ありません。

dataLayer = [{
'custom1': '1',
'custom2': '2',
'custom3': '3'
}];

で、今回実現したかったのは、

dataLayer = [{
  'statusCode': ['500','502','503']
}];

のような配列データをGoogle Analyticsへ送りたいということでした。
例えば、ある特定の商品がAカテゴリ、Bカテゴリ、Cカテゴリなどに所属していた場合、こんなデータをAnalytics側に通知して、どの延べのデータになりますが、どのカテゴリが一番注目度を集めていたかということを集計したい。といった感じです。

dataLayer = [{
  'productCategory': ['500','502','503']
}];

実際、私のニーズもそれにかなり近いものではありますが、この場合データをカンマ区切りで、例えばこんな感じでdataLayerを設定することは直ぐに出来ます。

dataLayer = [{
  'productCategory': '500,502,503'
}];

ですが、この方法はあとで集計がとても面倒くさい。
できれば配列でデータを渡して、シンプルに集計をしたい。。。

そこで、色々調べてみたのですが、カスタム変数にこのようにデータを渡すと最初の1つしかAnalyticsには入ってきませんでした。

dataLayer = [{
  'productCategory': '500’,
  'productCategory':  '502',
  'productCategory':  '503'
}];

ということで同じ変数を複数並べて取得するという方法は失敗。
で、どうやらEventを使って取得は可能だということで、実際やってみたら成功しました。
海外では結構実践されているようです。いくつか方法があって、これから紹介するやり方よりも全然単純なやり方もあるようです。

まず私のやり方ですが、ページ側には以下の様な配列を置いておきます。

dataLayer = [{
  'productCategory': ['500','502','503']
}];

もちろん事前に「productCategory」というデータレイヤー変数を定義しておいてください。
そして、Eventを飛ばすのに使うものはタグの「Custom HTML Tag」で、こんなものを書きます。

var modelCode = [];
  var productCategoryList = {{productCategory}};
        productCategoryListCnt = productCategoryList.length;
  for(var i = 0; i < productCategoryListCnt; i++) {
    dataLayer.push({'event': '●●Event名●●', 'eventAction': '●●Action名●●', 'eventLabel': productCategoryList[i] });
  }

見れば非常に簡単ですよね。
マクロの変数名「productCategory」の値を読み込んで、あとは普通のjavascriptです。

ただし!発火条件に注意
この「Custom HTML Tag」は全てのTagの発火が終わった後に読み込む必要があります。
それを実現する方法はGoogleのオフィシャルヘルプに記載されています。
DOM の準備ができた時点でタグを配信するよう定義するには、配信ルールに「イベントが gtm.dom と等しい」という条件を追加します。
という部分と、一番最後に書かれているこの1文。
window.onload でタグを配信するよう設定するには、「イベントが gtm.dom と等しい」という条件を使用します。
私も後で知っただけなのですが。
即ち、英語版ですが、こんな設定のルールを用意して、それを発火条件とします。


これで完了!
dataLayer.pushを利用しているので、イベントの受け口もちゃんと用意していただければ、1アクセスで配列データ分Eventが発火します。

GTMが出た時にこういう条件設定が出来ると聞いてはいたのですが、いままでちゃんと調べずにいました。

【参考】
Google Tag Managerに関するまとめ

新しいKloutでコンテンツを生み出していく

まだ試してはいなかったのですが、2月6日にKloutが新しく生まれ変わりました
Kloutスコアを上げるためには良質なコンテンツをよりシェアすることで友達やフォロワーがさらにシェアするという行動を促したりすることですが、そんな計測ツールとしてのKloutが興味のあるタグを設定しておくことで良質なコンテンツがキュレーションされて、さらにKloutからTwitterやFacebookに呟くという機能が追加されました。

※画像はKlout Blogから。

コンテンツのシェアは、Kloutがソーシャルへの投稿をスケジュール設定できたり、画像を添付出来たりしますが今のところはFacebookとTwitterのみ投稿が可能となっているようです。


そういう意味ではHootSuiteなどの別のツールと大差がない・・・というより、機能的には劣るものかもしれません。

コンテンツをタグでキュレーションして見れる情報発見的な使い方なら、利用価値はあるかもしれません。
海外でも今回のアップデートには賛否両論な感じに思えます。まだ個人的にもタグを設定してみたり、テストで投稿してみたりと使い始めたばかりですが、計測というあまりC向けではなく定期的に訪れるようなものではなかったサイトが、キュレーション的な機能などを備えることで一つのニュースサイトのように変化したのは良い方向ではないかと思ったりしています。