2015年9月30日水曜日

グーグルアナリティクスを使ってクリック数を計測

こんにちは、Yです。
9月ももう終わりで、秋になりますね。

今日のお悩みは、、、
Webサイトを作成したものの、作成したボタンがどれくらい使われているか
わからないというものです。

そんな中で、
本日は、グーグルアナリティクスで、ハイパーリンクが
クリックされた数を計測する方法にたどり着いたのでその覚書です。

まず「イベントトラッキング・コード」を、該当箇所に設置する必要があります。
以下のようなハイパーリンクがあった場合
イベントトラッキングをOnClick属性の追加で作ることができます。
つまりJavaScriptを使っています。

<a href=”http://sample.com”
onClick=”ga('send','event','SampleCategory','click','http://sample.com');”>
任意のリンク</a>

それぞれの意味としては
ga('send','event',   :ここが固定のコード
SampleCategory :「カテゴリ」任意の値
click         :「アクション」clickやDownloadを指定
http://sample.com:「ラベル」リンク先のURLや任意の識別名を指定

管理画面上では…
GAの画面ではカテゴリ>アクション>ラベルと階層で表示させることができます。

そもそも、サイト全体のトラッキングコードを入れていることが前提ですので
もし入れて入れていない場合は、トラッキングコードの設置で検索して見てください。

datetimeの列でデータを抽出したい!

岡田です。

データを抽出するときってだいたい数値か文字列で検索を書けるのですが、今回あまりなじみのないdatetime型の列で抽出しなくてはいけない作業があったので、メモしておきます。

例えばその日時が2000年12月31日だった場合は、、、


select top 100 * from datatable
where (DATEPART(yy, datecolmun) = 2000
AND    DATEPART(mm, datecolmun) = 12
AND    DATEPART(dd, datecolmun) = 31)


という感じ。

あまり使わなさそうなので忘れちゃいそうです。



エクセルやブログなどで「カラム」と呼びますが、雑誌やサイトで連載されている「コラム」と同じ単語なんですね。
もともと「column」には「柱」や「段」という意味があって、新聞で記事が段分けされて書かれていることから、その1段分の短い記事のことを「colmun」と呼んだんですね、きっと。

2015年9月29日火曜日

WebのSessionState 要素を調べてみた

こんにちわYです。
Webアプリケーションのセッションの時間を初めて操作したので
その覚書です。


今回操作したのは、timeout属性のみで、初期値20分から120分に伸ばすことが目的です。
他にも属性があったので、わかりやすく①属性の意味と、②既定値を書き出してみました。

<sessionState
    mode="[Off|InProc|StateServer|SQLServer|Custom]" 
     セッション状態の値を格納する場所を指定 
     既定では、InProc  (自分StateServerになっていてアウトプロセスを使っているみたい)
    stateConnectionString="tcpip=server:port"  
     セッション状態が格納される先のリモートのサーバー名またはアドレスとポートを指定 ポート値は 42424
     既定値は "tcpip=127.0.0.1:42424"
    sqlConnectionString="sql connection string" 
     SQL Server を実行しているコンピュータの接続文字列
     既定値は "data source=127.0.0.1;Integrated Security=SSPI"
    cookieless="[true|false|AutoDetect|UseCookies|UseUri|UseDeviceProfile]"
     Cookie の使用方法を指定します 
     既定値はUseCookies(ブラウザが Cookie をサポートしているかどうかには関係なく、Cookie によりユーザー データが保持される)
  timeout="number of minutes"
     アイドル状態のセッションが破棄されるまでの時間 (minute) を指定
     既定値は、20 分

    cookieName="session identifier cookie name"
     セッション識別子を格納する Cookie の名前を指定
     既定値は "ASP.NET_SessionId"
    regenerateExpiredSessionId="[True|False]" 
     有効期限が切れたセッション ID がクライアントによって指定された場合に、セッション ID を再発行するか指定
     既定値は true
    sqlCommandTimeout="number of seconds"  
     SQL コマンドの存続期間タイムアウトを秒単位で指定
     既定値は 0:00:30 (30 秒) >
</sessionState>


sessionState 要素 (ASP.NET 設定スキーマ)
https://msdn.microsoft.com/ja-jp/library/h6bb9cz9%28v=vs.80%29.aspx


2015年9月25日金曜日

複数台のMacでiOSアプリを開発する方法

こんにちは。
旧iOS担当です。色々あって今は開発してませんが、その昔困ったときの話をします。

開発をしていて、メンバーが増えた―とか、取引先が増えた―とかMac新調した―

とかいうときに、複数台のMacを使って開発するケースがあります。

今は当たり前かもしれませんが、昔証明書あたりもあまり詳しく解説されておらず
ビルドするときどうしようとか配布はどうしようとか悩んだことがあります。

解決方法はとても簡単なんですけど。



これ、各々で普通にXcode開いて開発始めてしまうと、provisioningprofileを共有出来ないんですね。
だから同じソースを共有していてもビルド時に『なんかわかんないけどこらー!』とか、そもそも『provisioningprofileねーよ!』みたいな怒られ方をします。
こんなときにprovisioningprofileをシェアすればいいんでしょ、と思うかもしれませんが
それじゃダメです。
※今はXcodeが勝手にprofileを落としてくるのでそもそも共有とかすらしないかもですが

で、検証の時に何とかしようと思って放置しておくと、後でidentifierが違うとか大元のソースとなんか構成変わってるとか、
どんどんドツボにはまっていってしまいます。

で、じゃあどうするのかというと、
最初に証明書を共有しておけばOKです。
証明書というとザックリしてますが、iOSDevCenterで作ったアプリ公開用の証明書ですね。
これが各Macに入っていれば、『このMacはこのアプリ開発に使っていい端末ですよー』という証明になります。
その証明があれば、配布やリリースなんかも出来るわけですね。
provisioningprofileも証明書に紐付いているので、これをしないと共有出来ないです。



で、肝心の証明書の共有方法を簡単に。
①まずこれまでリリースに使っていたMacを起動します。
 (リリースしたことない場合はまずはリリース方法から勉強してください)
②Macでキーチェーンアクセスを開きます
③そこにアプリ配布用の証明書がいるハズです。
④証明書の『‣』ボタンを押すと、鍵が表示されます
⑤証明書と鍵を両方選択した状態で右クリック(Macではなんて言うんだ・・・)
⑥書き出しを選択し、OK⇒OK⇒書き出しみたいな感じで書き出す
⑦パスワード付き(無でもいける)の.p12ファイルが出来上がるハズです。
⑧この.p12ファイルを別のMacに渡します
⑨別のMacで.p12ファイルを開き、⑦のパスワードを入力します
⑩キーチェーンアクセスを起動
⑪証明書が入っていること、鍵も一緒についていることを確認します。
※よくあるのが鍵がついていないケースです(‣これ)鍵が無いと証明書として機能しませんのでご注意

 但し、これらは注意が必要で、①のように必ず親となるMacが必要です。
証明書作成・管理用の親Macを決めておいて必ずそこから配布するようにしてください。

 以上です。意外と簡単なことで済みます。

5分で出来る、cocoapodsインストール

神ツールと名高いcocoapodsですが、これまでなかなか導入に踏み切れませんでした。

最近では個人開発のライブラリから有名どころのSDKまでなんでもそろっている訳で。

どんなのがあるのか興味がある方はこちら。

https://cocoapods.org/



導入しなかった理由はただなんとなくだったんですけど、

・・・思い切って導入してみっか!とこれまたなんとなく思ったわけで。

半分気分ですね。

で、導入した感想は、「あ、これ5分で出来るじゃん。簡単」です。

なぜもっと早くやらなかった・・・。



そしてライブラリの管理楽すぎすごい。楽しい。なんかありがとう。



そんなcocoapodsの導入方法ですが、簡単にまとめます。

①macのターミナル開く

②魔法の呪文その1「sudo gem install cocoapods」

③魔法の呪文その2「pod setup」

④プロジェクトのディレクトリにPodfileを設置(空のテキスト置いてCmd+Iで拡張子いじると簡単)

⑤ターミナルでプロジェクトのディレクトリに移動し「pod install」と唱える!!



簡単です。簡単すぎてなんでもかんでも入れすぎないように注意。

ちなみに、ビルドするときは「BaseSDK」と「BuildActiveArchitectureOnly」という

罠が二つ潜んでいるので注意。

TOC(制約理論)

先日、会社のお偉い人に一冊の本を渡されました。

ザ・ゴール  コミック版」 そう、漫画です。


image

制約理論の基礎をわかりやすく説明してくれていました。
今の仕事の進め方を思い浮かべながら読んでいたんですが、「なるほどな」と思える部分が盛りだくさん。
制約理論とは、簡単に言うと

「現在から将来にわたって儲け続ける」というゴールの達成を妨げる制約条件(Constraints)に注目し、企業内共通の目標を識別し改善を進める事によって企業業績に急速な改善をもたらす


という考え方。

例えば、ラーメン屋。

①麺を作る人
②スープを作る人
③具材を作る人

の3役があった場合。

①の人は、1時間に10人前の麺を作る力を持っている。
②の人は、1時間に20人前のスープを作る力を持っている。
③の人は、1時間に5人前の具材を作る力を持っている。

そう、人それぞれ能力はバラバラなのです。
この場合、1時間に作れるラーメンは、5人前です。
だって、具材が5人前しかないのですもの。素ラーメンでよければ、あと5人前は作れますが・・・。
この場合は、①と②と③が密接に絡み合っている(繋がっている)–どれが欠けてもダメ
なので、成果は最少人数に合わせざるを得ないのですよね。
では、どうやってもっと効率(生産性)を上げていこうか。
というのが、制約理論。(だと、理解しました)
ラーメンの場合は、ボトルネック(制約)は、具材。
なので、試みとしては、
③具材のペースに合わせる。
①と②は作り過ぎない。だって、麺とスープが余っちゃうから(余剰在庫)
これによって、余計なコストを一つカット。
でも、これだけだと力が有り余っている人がいるよね(①と②)
①と②の余っている力で、③をやろう。
こうすることで、①②の生産性はそのままで、
③は1時間に10人前作れるようになれれば、結果、1時間に10人前のラーメンが出来上がる。生産性、倍!
といった形で全体の押し上げになる。
この形でうまくいっても、更なるボトルネック(制約)が見つかる、きっと。
で、同じように考えて、ボトルネックを解消していく。そして、また次。
といった感じで繰り返しながら改善していく。
納得。今の仕事に当てはめられる部分もたくさん。頭の中では既に改善できてる姿が思い浮かぶ。
が、現実はそんなに甘くない。けど、頑張ってみる、いまから。
というか、なんでラーメンを例にしたんだろう。きっと食べたかったんだと思う。
最初のブログなので、文章めちゃくちゃ、読み難くてすいません。
きっと、書いていくうちに成長していきます。何事も経験ですから。

2015年9月9日水曜日

クローラビリティとショッピングモール

岡田です。初めての投稿です。 
さぼってましたが、個人的にSEO関連でメモっておきたいな~と思ったものをまとめていきたいと思います。

 ■クローラー 
今回のタイトルにもしている「クローラー」。検索エンジンがWEB上にあるファイルを集めるためのプログラムです。 

クローラーさんがサイトに訪問することによって、そのサイトの内容や画像が検索エンジンに蓄積されて、検索結果に表示されるということですね。

 大きなショッピングモールを歩きながらウィンドウショッピングをしているようなイメージです。
「2階の西側はティーン向けの洋服屋さんがあるな」とか「3階には映画館があるな」「フードコートは地下か」とか、そんなことを考えながらクローラーさんはウロウロしているのでしょう。

 ■クローラビリティ

 ただ、クローラーさんもウロウロしながらすべてのお店をくまなく見ることはさすがにできないようで、すこしでも気づいてもらえるようにする工夫が、最近はやっている「SEO対策」というわけですね。

 クローラーの巡回しやすさを「クローラビリティ」といい、たくさんの情報があるサイトほど、クローラビリティは重要な要素になるようです。 

先ほどのショッピングモールの例えで言えば、、「2階東側に新店舗OPEN!」という看板を関連する店舗に立てるとか、そんな感じでしょうか、、あんまりうまくないな。


 そういえば、先日初めて亀有にある某ショッピングモールに行ったのですが、ながーい通路にはたくさんベンチやソファがあって、たくさんの家族連れが休憩できるようになっていました。 
さらに驚いたのは、そのベンチの一部がマッサージチェアになっていて、「5分100円」で足と背中をマッサージしてもらえるんです。 
荷物持ちと子供の世話でくたくたなお父さん方にもウケそうですし、外出が億劫になりがちな高齢者の方にもお買い物を楽しんでもらえるきっかけになりそうだなと思いました。


 そんなわけで次回から、検索ロボットのクローラビリティに関するお話とちょっと日常で気になったこととかをまとめていきます。