Google Search ConsoleのCSVが文字化けする件

エクセルで開いては「また文字化けしてる!」を繰り返すこと幾星霜。いい加減原因と対策を調べてみた。結論から言うとGoogle Search ConsoleのCSVはUTF-8。エクセルはCSVをShift-JISのつもりで開くので文字化けする。

CSV文字化けの対策

以下のいずれかの対策で文字化けせずにエクセルで扱えるようになる。

  • テキスト中の,(カンマ)を\t(タブ)に変換してエクセルに貼り付ける。
  • メモ帳やエディタで開いて名前を付けて保存、あるいは複製して新規保存する際にShift_JIS or ANSIで保存する。
  • 拡張子を.txtにしてエクセルで開き「テキストファイルウィザード」のオプションで文字コードを「Unicode(UTF-8)」にする。

 

Googleのペナルティ判別方法

他で順位変動していないのに自分のサイトの順位が大きく下落した場合、一時的なものかGoogleのペナルティなのか判別する必要がある。

手動ペナルティとアルゴリズムによるペナルティ

ペナルティには大きく分けて2種類ある。手動ペナルティかアルゴリズムかによって対応方法も変わってくる。

手動ペナルティによるペナルティへの対処

はガイドライン違反などがあった場合にWebmasterToolsに通知が来る。通常の場合違反している箇所の修正、または不自然なリンクの解除・否認などをした上で再申請を行う。

アルゴリズムによるペナルティへの対処

アルゴリズムによるペナルティを受けているかをまず確認したい。色々なパターンがあるが一時的な順位下落かは下記のフローでチェックできる。

Googleペナルティ判定フローチャート | SEOとその周辺

前段としてWebmasterToolsで手動ペナルティでないことを確認した上で
1.:site URLで検索結果が表示されない→index削除。重大なペナルティ。
2.トップページに固有な文言で検索し1位にならない→ペナルティの可能性あり
3.サイト共通の文言で検索してトップページが1位にならない→ペナルティの可能性あり
4.トップページ内の特徴的なword3つほどで1ページ目に入らない→ペナルティの可能性あり
5.順位下落が100位以内→ペナルティの可能性あり

うーむ担当しているサイトの場合5番なので重大ではないアルゴリズムペナルティの「可能性がある」という感じでしょうか。原因がわかりづらいので対処が難しいパターンですね〜。

WooThemesを日本語化する

WordPressの有料テーマWooThemesを使っている。大体において日本語でも問題ないが「View all posts by xxx」みたいに英語のままになっている箇所がある。これを日本語化したい。幸いWooThemesはpo/moファイルでの国際化に対応しているので追加プラグインを入れ自分で言語ファイルを追加してやれば日本語化できる。

Translating WooCommerce (Localization) | WooThemes Documentation

WordPressでjQueryで指定したバージョンを使う

セキュリティの問題があるので基本的にWordPressに更新が出たら即更新しているのだがjQueryのメジャーバージョンが上がってプラグインで使っていた機能が動かなくなってしまう弊害が出た。調べた所theme側でjQueryのバージョンを指定する方法があるようだ。

まずJavaScriptはthemeのheader.phpに記述されたwp_head()メソッドで出力されている。これの前におまじないをしてやれば良い。WordPress3.6ではjQueryのヴァージョンが1.8.3 → 1.10.1に変更されメソッドの廃止などでエラーが出ている時に。(将来バージョン下げてるの忘れて嵌りそうだが)

<?php
//WordPress自体の読み込みをキャンセル
wp_deregister_script( 'jquery' );
//バージョンの指定
wp_enqueue_script('jquery','http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js');
?>

WordPress3.6の概要を3分で

いい資料だと思います。編集画面の刷新、まだ定着していないようですけどTumblrっぽくなるみたい。

Apple Push NotificationのFeedbackサービス

iPhoneなどにPushを送るApple Push NotificationのFeedbackサービスというものがある。アプリを出してしばらく経つと機種変とかアンインストールなどでPushが届かない端末が出て来る。不達になった場合Apple側にデバイストークンが通知され一定の基準に達するとFeedbackサービスで不達デバイストークンとして返ってくるリストに加えられる。

というわけなのだがFeedbackサービスはバイナリインターフェイスなのでデバッグが難しい…というか毎回別の値が返ってくるので意味がわからない。なう。

APNSのFeedbackサービスはPDF1ページしか説明が無くて情報不足。運用についてはhttps://code.google.com/p/javapns/wiki/FeedbackServiceの方が詳しい。

追加で書かれているのは

  • Push送信時にもエラーレスポンスパケットが出ると思うけどっそっちと併用して判断してね
  • エラーレスポンスパケットが出ると思うけどっそっちと併用して判断してね
  • Feedbackサービスの場合アプリがアンインストールされた時にApple側に通知が来るよ(ということは機種変による不達は別の方法で検知が必要)
  • インターネッツ上の情報を総合すると最低1個以上Push設定されたアプリが残ってないとAppleにアンインストール通知が来ないよ(なんだそりゃ。バグ?)

Windows Azureモバイル サービスのiOSサポート – プッシュ通知サポートを追加 | S/N Ratio (by SATO Naoki)でも同様のことが書かれている。Feedbackサービスはアンインストール通知を集めている、ということね。

PNS (プッシュ通知サービス) を扱う際に重要な点は、期限切れのデバイス トークンやチャネルのフィードバックの扱いです。通常、アプリケーションが特定のデバイスからアンインストールされ、もはや通知を受け取れない際に、これが起こります。Windows Notification Services (WNS) では、HTTPサーバーから即座にレスポンスを取得します。アップルの通知サービスは少し異なる形で動作し、期限切れのトークンの一覧をポーリングするために接続できる追加のエンドポイントを提供します。

GoogleAnalyticsAPI事始め2013

管理しているサイトや指標が多くなってきてGoogleAnalyticsを操作するのも手間になってきたのでAPIで手間を省きたい。

公式ドキュメントはWhat Is The Core Reporting API – Overview – Google Analytics — Google Developers。APIのバージョンは「The Core Reporting API version 3.0」。Version 2.4からbase URLがversion番号付きのURLに変わったので注意。

認証

まずApplication registrationが必要。Google APIs Consoleに登録後、認証はOAuth 2.0かLegacy Mechanisms、要するにapplication keyの値を指定する。推奨はOAuth2.0でドキュメントはCore Reporting API – Authorization – Google Analytics — Google Developers

AnalyticsAPIを使う

公式ドキュメントは
Core Reporting API3.0の公式ドキュメントはCore Reporting API – Reference Guide – Google Analytics — Google Developers

…となった所で以前書いたコードが発掘されたのでおしまい。

AdWords APIを使いはじめる

AdWords API、なんか日本語のドキュメントだ(∩´∀`)∩ワーイと思ってるとすぐ英語ドキュメントに飛ばされるので侮れない…。

まず公式ドキュメントはこちら
AdWords API の概要 – AdWords API — Google Developers

公式ブログによると1日あたりのオペレーション数の上限が1万回までの「ベーシックアクセス」アカウントは無料になったらしいので使ってみることに。

2013 年 3 月 1 日より、開発者による AdWords API のご利用を無料にいたします。AdWords API の優待料金制(英語、以下同様)は廃止されます。

3 月 1 日以降、API のアクセス権は、ベーシック アクセスとスタンダード アクセスの 2種類になります。ベーシック アクセスはデフォルトのアクセス権で、1 日あたりのオペレーション数の上限は 1 万回です。スタンダード アクセスは認定された開発者が対象で、1 日のオペレーション数に制限はありません。ベーシック、スタンダードのどちらのアクセス権でも、AdWords API のご利用に料金は発生しません。
Inside AdWords-Japan: AdWords API の料金体系の変更について

MCCでアカウント設定を行う

手順はSigning up for the AdWords API – AdWords API — Google Developersに書かれている。

  1. Step 1: Signing up for the AdWords API
  2. Step 2: Applying for access to the AdWords API
  3. Step 3: Set up billing and accept Terms and Conditions of usage
  4. Step 4a: Token Review team has approved my Developer Token
  5. Step 4b: Token Review team has rejected my application

My Client Centerが倒せない

My Client Center (MCC) のURLが変わっているらしくいきなり迷子になる。Google AdWords – My Client Centerという画面に飛ばされるがSignUpに行ってもスタイルシートすら当たっていない画面でなんだこりゃ、という感じ。
→Safariだとちゃんと画面が表示されたので先に進めた。Chromeの問題なのかたまたま私の環境が悪いのかはわからない。

type TargetingIdeaSelector (v201302) – AdWords API — Google Developers

TwitterCardのApp Cardを設定する

TwitterCardにアプリへの誘導を埋め込めるようになったので早速実装。

■できること

  • iPhone/iPad/Androidのプラットフォームごとにアプリを指定できる
  • URL schemeを指定できるのでアプリがインストール済みの場合、クリックして起動することができる。

App Card | Twitter Developers にドキュメントがあるがシンプルで簡単。テストツールは下記から。App Cardの検証は

https://dev.twitter.com/docs/cards/validation/validator から、と思ったらvalidatorがapp cardに対応していないんのでその先の申請に進めない…

WooThemesのlocalizeってどうすればいいのかしら

WooThemesというWordPressの有料テーマを提供しているサービスがあります。でも海外の会社なので当然テーマ内のあちこちが英語なんですね。「Continue reading」とか「Leave a comment」とか書かれている。これを日本語化したい。

gettextによる日本語化

実はWooThemesはlinux界隈で使われ知恵るgettextの仕組みで各言語へのローカライズに対応している。これは捗る!

…と思ったのだが問題があった。

ちなみに文書は割ときれいに用意されている。

Translating WooCommerce (Localization) | WooThemes Documentation

1.Introduction
2.Before you begin
3.Setup WordPress
4.Translate using Codestyling Localization
5.Making your localisation upgrade safe
http://docs.woothemes.com/document/woocommerce-localization/

WordPressのWPLANGの設定が合わない件

WordPressの言語設定は一般にwp-config.phpのWPLANGに設定することになっている。この書式が問題で日本語のwordpressはWPLANGにjaが設定されていてja_JP書式になっていない。

define (‘WPLANG’, ‘fr_FR’);
http://codex.wordpress.org/Translating_WordPress

のでja_JPに設定するとWordPress管理画面が英語になりjaのままだとテーマ側のローカライズが反映されない、というジレンマに。しかたないのでテーマ用にja_JPのpoファイル、moファイルをリネームしている…。

Twitterの新公式ボタンでボックス(vertical)表示に変更するオプション設定

Twitterの新公式ボタンではボックスタイプが無くなってしまったが、オプションを指定すれば従来通りボックス表示ができる。

標準ではこのように、横長のTweetボタンだけ設定できる。
Twitter _ Twitterボタン

標準のコードは以下の通り。

<a class="twitter-share-button" href="https://twitter.com/share" data-lang="ja">ツイート</a>
<script type="text/javascript">// <![CDATA[
!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>

ボックスタイプにするにはaタグに data-count=”vertical”を追加すれば良い。

<a class="twitter-share-button" href="https://twitter.com/share" data-lang="ja" data-count="vertical">ツイート</a>
<script type="text/javascript">// <![CDATA[
!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>