広告/統計/アニメ/映画 等に関するブログ

広告/統計/アニメ/映画 等に関するブログ

【備忘録】Google Analyticsの定時レポート_Spreadsheetを使う

Google Analyticsのレポートを毎週、毎日出してくれ!とオーダーされる機会は多いかと思います。 RやPythonAPI経由で取得する、という方法もありますが、何故か日本の企業はセキュリティは厳しいので手元のアプリケーションからAPIを読み込むとエラーになってしまうことも。 (*私がそうだ、ということです。。。)

基本的なやり方は各リンク先に譲り、その先の微妙なポイントだけまとめておきます。

GoogleのSpreadsheetを使う

調べていくとGoogleスプレッドシートのアドオンを使う方法がありました。

最初の設定及びピボットテーブルなどを使う方法はコチラを参照下さい

web-tan.forum.impressrd.jp

定時レポートにする

アドオンの中に毎週だとか毎日だとか何時に集計だとかありますので、 これで定時レポートは完成です

bnbrd.net

日付の入力など

デフォルトでは7日分が期間設定となっていますが、開始日・終了日を指定することも可能です

qiita.com

特定のページに絞る

ある意味ここが一番知りたいところです。

Google Analytics APIで日付×ページ別にPVを集計する方法 http://www.plusmb.jp/2010/10/26/5467.html

例えば、Flitersの欄に以下のように記述します

  • あるディレクトリ(hogehoge)以下のみを集計対象にする

ga:pagePath=~/hogehoge/

  • あるページ(/hogehoge_1.html及び/hogehoge_1.html)のみを集計対象にする

ga:pagePath=~/hogehoge/hogehoge_1.html,ga:pagePath=~/hogehoge/hogehoge_2.html

この時、「”http://~"」などの記述は不要です

おまけ

Google Analyticsについて説明した本はあまた書店に並んでいるのですが、「ページ別に出したい!」「GDNとgoogle/cpcの違いがわからない!」などといった実務をやっていればすぐにでも課題になるところのアドバイスが全然ないものが多くて、この手の情報に関しては個人のありがたいブログに頼りっきりです。

dot言語がフロー図に便利

最近dot言語を知りました。 今までPowerPointIllustratorでチマチマ作図していたフロー図が簡単に描ける便利ツールです。

導入

こちらのブログの通りに、公式サイトに行ってダウンロードしてインストール

Graphvizメモ(Hishidama's Graphviz Memo)

起動

スタートメニューからgvedit.exeを起動するだけ

保存・実行

新規作成して「.dot」ファイルとして保存します。

記述方法

「->」を使って、矢印の関係性だけを記述していけば、勝手にそれらしい図になります。 文法はこちらのサイトがとても分かりやすくまとまっていました。

takuya-1st.hatenablog.jp

日本語を使う場合フォント指定が必要

普通にやると文字化けするのでフォント指定が必要

WindowsでGraphvizを使う | You Look Too Cool

※その他、文字コードの指定も必要っぽいのですが、ここはまだ何が正解かわかりません

例えば、以下のように記述すると

digraph zu01 {

node[fontname="meiryo"];

edge[fontname="meiryo"];

時間が足りない -> 他人に振れない

他人に振れない -> 自分でやる

自分でやる -> 時間が足りない

自分でやる -> 精度が下がる

精度が下がる -> 出し直しが増える

出し直しが増える -> 時間が足りない

}

こうなります

f:id:yyhhyy:20160807100806p:plain

必要な関係性を記述していくだけで勝手に図にしてくれるので、作業効率が上がると思います。 綺麗に清書したければ、この画像をベースに描けばよいでしょう。

【備忘録】Jupyterで日本語をグラフに表示する

デフォルトでは”豆腐”になる

Jupyterのグラフに日本語のラベルを入れるとデフォルトでは所謂”豆腐’になる。

f:id:yyhhyy:20160731181534p:plain

自分の環境では

Jupyterではpylabとseabornを使っているので、以下のサイトを参考に設定をしました。

qiita.com

qiita.com

設定周りの変更

  1. pythonのフォントの設定が入っているフォルダを探す

  2. フォントのデータをそのフォルダに入れる

  3. 設定ファイルをこのサイトの通りに変更する 【Seaborn】日本語を表示する (フォントを変更する) - Qiita

コードを書く時の注意

  1. フォントを都度都度呼ぶ
sns.set(font=['IPAexGothic'])

snsはseabornをそういう名称で読み込んだためです。

  1. Unicodeであることを明示する
pylab.ylabel(u"投資額")

Windowsなのでデフォルトがアスキーコードです。「u」をクォーテーションマークの前につける必要があります

そもそもで幾つかの注意

そもそもJupyter でグラフを表示するまでに必要なコードがある。

冒頭に「# -- coding: utf-8 --」

import seaborn as sns
import pylab
%matplotlib inline

できました!

f:id:yyhhyy:20160731182720p:plain

今回のコード全文

冒頭に「# -- coding: utf-8 --」

import seaborn as sns
import pylab
%matplotlib inline
pylab.figure(1)
principal = 10000
interestRate = 0.05
years = 20
values =[]
for i in range(years + 1):
   values.append(principal)
   principal += principal*interestRate
pylab.plot(values)
sns.set(font=['IPAexGothic'])
pylab.title("5% Growth,Compounded Annually")
pylab.xlabel("Years of Compounding")
pylab.ylabel(u"投資額")
pylab.show()

壁紙

壁紙のツイート

Twitterで面白い壁紙のツイートを見ました

三次元空間に拡張するとは!

調べてみた

調べてみると色々壁紙がある。

面白い壁紙 - Google 検索

懐かしき上田先生

matome.naver.jp

というわけで作ってみました

f:id:yyhhyy:20160731200247j:plain

Windowsのデフォルトの背景色にGOTHAMフォントで入れています。

IoTの理解のキーワードはモジュール化と中小企業

ちょっと前と最近とに読んだIoT関連本で共通のキーワードとして「 モジュール化 」が出てきました。

IoTには様々な側面がありますが、余りインターネット上の記事では指摘されていないこの視座について、まとめておきたいと思います。

読んだ本とは?

少し前に読んだ本。製造業がモジュール化したことにより、個人や中小企業でも簡単にIoTメーカーになれる、ということが指摘されていました。

最近読んだ本。ドイツのインダストリー4.0では、モジュール化と同時に、産業内での仕様を標準化させることによって、中小企業の製造する部品類が一つの取引先相手ではなく様々な相手に売りこむことができるようになることを目論んでいる、という指摘がありました。

モジュール化とは?

www.itmedia.co.jp

家電の例がよく上げられますが、例えば真空管全盛期であれば、真空管の独自技術こそが競争優位性のポイントでした。しかし近年では、センサーや集積回路などパーツ単位で外部の企業から部品を買い、自社では組み立てるだけで競合と差のない製品を作れる時代になりました。この”パーツ単位で組み合わせればいい”というのがモジュール化のポイントです。

シャープが亀山工場で液晶モニターを売りにしていましたが、サムスンやLGがあっという間に追いついて抜いてしまいましたし、PC事業も顕著な例でしょう。 モジュール化が進んだ断行ではその気になれば誰もが参入できるのです。

モジュール化時代のマーケティングの重要性

Appleの画面を納入しているのは日本のメーカーだ!今度は日本が外される!等々、話題になっている通りAppleでは設計・デザイン・マーケティング・販売は行いますが製造は世界中の工場に委託して組み立てています。

モジュール化が進むと、最終生産財を作っている企業は、「売れる商品を考える」「売れる宣伝方法を知っている」「売れるルートを知っている」「顧客のデータを持っている」といった”マーケティング”部分が重要になってきます。

例えば、日本が独自技術を無理に機能に突っ込んで価格を上げたりして海外市場に苦労している隙に、サムスンは世界各地に自社の社員を生活させ行動観察をさせました。インドならインド人が好むモニターの色の傾向、インド人が好む扇風機の色、等々をリサーチし、必要な機能を望まれる値段で提供することでシェアを拡大しました。

※地域専門家制度について

japan.cnet.com

プロダクトアウトではなくマーケットインだ、というのは既にマーケティング2.0の時代の話ですが、まだそこに追いついていないのが日本の現状です。

日本の企業にはまともなマーケティング部門がないということは森岡毅さんも強く指摘しています。

中小メーカーの可能性

裏を返せばマーケティング能力があれば誰でもメーカーになれる時代ということです。

そんなリスクも投資もできないと思うかもしれませんが、クラウドファンディングによってコアなユーザー向けの商品であっても需要が事前に確認できるような時代になりました。

部品メーカーの逆襲

これまで日本のメーカーは系列に縛られ、親会社でもないのに発注業者に「この技術は他で使うな!」「在庫リスクを抱えたくないから俺たちが必要な時に必要な分を納品しろ」「工場を撤退するからここはもう終わりだ」といった弱い立場であったことに加え、「すり合わせ」と呼ばれる独自仕様を発注時に課され、それに応えてきました。

bizgate.nikkei.co.jp

この「すり合わせ」は、発注先にとって都合の良いものですが、中小企業にとっては他所の企業にはそのままではその製品が売れない面倒な特注品となります。

しかし、ドイツが国を上げて進める標準化がグローバルスタンダード化すれば、すり合わせの必要はなくグローバルに取引先候補が広がります。取引先相手が増えることでポートフォリオを分散できれば、特定の企業の為にすり合わせに応じる必要はありません。更に、独自技術が売り物になるようであれば価格交渉はもっと有利になります。

techon.nikkeibp.co.jp

IoTやインダストリー4.0に期待するパラダイムシフト

IoTはモノとモノとが情報を交換するようになりより効率的に報連相されることです。インダストリー4.0はそのIoTの流れを受けて、工場がより効率的に稼働するようになることです。

これらはどちらも一見すると最終生産財を作っている大企業側の話のように写りますが、これらの事象の裏側で進む「モジュール化」や「標準化」によって、部品を作っている中小企業、最終生産財を作る中小企業、或いは究極的には個人が、活動をしやすくなる環境が整い始めています。

マーケティングとプレゼン力

上記のような時代で生き残るには、マーケティング力が第一に必要ですが、それ以外にも「自社や自社の製品をアピールする」ということが重要になります。

最近読んだ自己啓発系の本ですが、分かり易い企画書の重要性、特に近年は動画でプレゼンするなら動画でのプレゼン能力が重要になってきているという指摘があります。

最近の若い社員であれば、ニコニコ動画で配信した経験もあるでしょうし、もうすぐ社会人になる人はもっと手軽にスマフォでツイキャスをしていたりします。

gaiax-socialmedialab.jp

気が付けば進化してお求めやすいAdobe製品

先般、Adobeのクリエイティブクラウドに登録しました。

月5000円はなかなか貼るお値段ですが、仕事上AIデータの受け取り、Photoshopでの加工、動画のファイル変換、ちょっとした動画の繋ぎ、などをしている身としては、IllustratorPhotoshopInDesign、Premiere、After Effectsなどが使い放題なのはとてもお得です。

中でもびっくりしたのがこの切り抜き機能。

techacademy.jp

昔はGIMPで1セル1セル、境界で消したりしていたのですが、ちょっとした企画書に貼る程度の画像ならデフォルトの機能にお任せで充分です。

使い方がわからない~と言って逃げているうちにツールを使いこなす若い世代に追い抜かれないようにしたいものです。

RでGoogleAdWordsのCSVを読み込む時_文字コード_区切り文字_を指定してファイル読込

近年は誰でも安価にデータ分析ができるツールを手にする時代となりましたが、実務に使ってみようと思っても教科書通りにいかない、、ということはよくある現象かと思います。

リテラシーが高い人にとっては呼吸をするように無意識的に対応できるところが、私のような初心者にとっては躓きとなります。

今回は、AdWordsのレポートをCSVファイルで取得した時に文字化けで困ったので、その対応方法についてまとめてみました。

先ずは普通に読み込んでみた

コード

hogehoge <- read.csv("hogehoge.csv")
head(hogehoge)

結果

Error in make.names(col.names, unique = TRUE) : 
invalid multibyte string at '<ff><fe><83>^JT<ec>0ン0<fc>0ネ0'
In addition: Warning messages:
 1: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  line 1 appears to contain embedded nulls

エラーです

文字コードを確認する

Rではデフォルトの文字コード以外の文字コードのファイルを読み込む際には文字コードを指定して読み込む必要があります。

文字コードの確認には、nkfが便利です。 使い方やインストールはここでは詳解しませんので各自ご準備下さい。

takuya-1st.hatenablog.jp

コマンドプロンプトでファイルのある箇所まで行き、nkfで確認

C:~~ nkf -g hogehoge.csv

結果

UTF-16

ということで文字コードが「UTF-16」だと判明しました。

文字コードを指定して読込

read.tableでもread.csvでも文字コードを指定して読込ができます。「fileEncoding = "UTF-16"」を追加します。

コード

hogehoge <- read.csv("hogehoge.csv",fileEncoding = "UTF-16")
head(hogehoge)

結果

広告レポート..2016.06.15.2016.07.14.
1                         日\t広告の状態\t広告\t広告文 1\t広告文 2\t表示URL\tリンク先URL\t最終ページ URL\tモバイルの最終ページ URL\tトラッキング テンプレート\tカスタム パラメータ\tHeadline 1\tHeadline 2\t説明\tPath 1\tPath 2\tキャンペーン\t広告グループ\tステータス\tラベル\tキャンペーン タイプ\tキャンペーンのサブタイプ\tクリック数\t表示回数\tクリック率\t平均クリック単価\t費用\t平均掲載順位

文字化は解消されましたが、なんか変なデータになってしまいました。

先ずは、どうやら一行目にデータ以外の余分な行が入っているようです。人は何故データ以外の情報をCSVファイルに書いてしまうのでしょうか!!

冒頭のn行をスキップして読込

冒頭の何行かに余分な情報を入れていることはよくある話なので、スキップして読み込むという便利なオプション「skip=(行数)」があります。

コード

hogehoge <- read.csv("hogehoge.csv",fileEncoding = "UTF-16",skip=1)
head(hogehoge)

結果*1

日.広告の状態.広告.広告文.1.広告文.2.表示URL.リンク先URL.最終ページ.URL.モバイルの最終ページ.URL.トラッキング.テンプレート.カスタム.パラメータ.Headline.1.Headline.2.説明.Path.1.Path.2.キャンペーン.広告グループ.ステータス.ラベル.キャンペーン.タイプ.キャンペーンのサブタイプ.クリック数.表示回数.クリック率.平均クリック単価.費用.平均掲載順位 ...
1      2016-07-13\tアクティブ\t広告名: 320x100_hogehoge.png; 320 x 100\t\t\t\t\t\t\t\t\t\t\t\t承認済み\t --\tディスプレイ ネットワークのみ\tすべての機能

まだなんだかよくわからない長い行として認識されています。

区切り文字を指定して読込

よく見ると「\t」という文字があります。正規表現でよく見る「タブ」のことだと推測されます。 CSVってカンマ区切りって意味じゃなかったっけ?と思いながら 区切り文字をタブに指定して 読込ます。

コード

hogehoge <- read.csv("hogehoge.csv",fileEncoding = "UTF-16",skip=1,sep="\t")
head(hogehoge)

結果の前の方*2

日 広告の状態                             広告 広告文.1 広告文.2          表示URL  
1 2016-07-13 アクティブ 広告名: 320x100_hogehoge.png; 320 x 100                   URL           
2 2016-07-06 アクティブ   広告名: 468x60_hogehogec.png; 468 x 60                   URL           

後ろのほう*3

キャンペーン.タイプ キャンペーンのサブタイプ クリック数 表示回数 クリック率
1 ディスプレイ ネットワークのみ             すべての機能          10     10000      __%
2 ディスプレイ ネットワークのみ             すべての機能        300   100000     __% 

どうやら1行目がヘッダー情報で、2行目からがデータのようです。

ヘッダーを指定する

既にread.csvが勝手にヘッダーを認識してくれているようですが、通常はヘッダーがあるよと指定して読込ます。

コード

hogehoge <- read.csv("hogehoge.csv",fileEncoding = "UTF-16",skip=1,sep="\t",header=T)

空白を空白として認識させておく

データを一部消したので公開した部分にはありませんが、何も書いていない列があったりします。そういう所は、欠損していると認識させておくほうが後で便利な場合があります。

コード

hogehoge <- read.csv("hogehoge.csv",fileEncoding = "UTF-16",skip=1,sep="\t",header=T,na.strings =c("","NULL"))
heead(hogehoge)

結果の前の方*4

日 広告の状態                             広告 広告文.1 広告文.2          表示URL リンク先URL
1 2016-07-13 アクティブ 広告名: 320x100_hogehoge.png; 320 x 100     <NA>     <NA> URL       <NA>
2 2016-07-06 アクティブ   広告名: 468x60_hogehoge.png; 468 x 60     <NA>     <NA> URL        <NA>

もっとちゃんとした情報は

その他にも、文字列が「factro」として認識されて「character」と認識されずに困ることがあります。

qiita.com

自分も苦労した経験があります。もっと早く知っておけばよかったと思います。

今回は必要としなかったその他の読み込み時のトラップはまだまだあります。読み込み時のオプションの指定方法についてはこちらのサイトがよくまとまっていました。

qiita.com

*1:(一部のデータを消しました)

*2:(一部のデータを消しました)

*3:(一部のデータを消しました。数字も仮です)

*4:(一部のデータを消しました)

MarkdownのWordにもPowerPointにもなる汎用性の高さに感動

※2019/10/22 記事を更新しました。Pandocから直接PowerPointが作成可能です

yyhhyy.hatenablog.com


先般、Pandocを導入した話をしました。

yyhhyy.hatenablog.com

その後、暫くMarkdownを練習がてら使ってみたのですが、これがなかなかに素晴らしいことがわかってきました。その中でも自分的にこれは良いと思ったところをまとめておきます。

Markdownはテキストファイルで書けるので軽い

Wordの欠点は、とても重いこと。

途中で画面が真っ白になってフリーズしてしまったり、文字の入力や変換に画面表示がついていかなかったり、オート機能をオンにしている人は、Wordが余計な補足をしてくれたり。。。

メモ帳の欠点は、装飾が出来ないこと。

動作は快適なものの、太字やら見出しやら、箇条書きやらは設定できない。

※余談ですが、メモ帳はデフォルトの表示から「書式」 > 「フォント」で、表示するフォントを変えるだけでも快適さは変わります。 f:id:yyhhyy:20160709014633j:plain

Markdownはその両方を兼ね備えている

Sublime Text を使えば、Markdown記法をすぐにプレビューしてくれるし、動作もWordに比べると圧倒的に軽い。

f:id:yyhhyy:20160709015347j:plain

MarkdownはWordにできる

先般の記事の通りWordにするのは簡単で、

先ず、「Windowsキー」+「R」で”ファイル名を指定して実行”を起動し、「cmd」と打てば、コマンドプロンプトが起動します。

f:id:yyhhyy:20160709015842j:plain

そこでカレントディレクトリまで移動し、元のファイル名、変換するフォーマット、変換してアウトプットするファイル名を記載するだけでWordファイルの出来上がりです。

pandoc 20160708.md -t docx -o 20160708.docx

先日の記事ではスタイルを別のWordファイルで参照させましたが、どちらかというと、pandocで変換した後は、Wordの方で整形した方が早いように思います。フォントにしたって自分がよく使うフォントのスタイルを記憶させておけばそれでいいのです。。

f:id:yyhhyy:20160709020409j:plain

MarkdownPowerPointにもなる

Markdownは、LaTeXを使ってPDFにすることが出来ますが、PDFは更にPowerPointにすることが出来ます。結果的に、MarkdownPowerPointになるということです。

MarkdownをPDFにする

pandocでbeamerに変換。XeLaTeXを使う。

Tex Live! 等でLaTeXを入れていれば、beamerが使える筈。

pandoc 20160708.md -t beamer -o 20160708.pdf --latex-engine=xelatex -H font.tex

latexのエンジンを指定する必要があります。各種サイトではLuaLaTeXが推奨されていますが、フォントの自由度でXeLaTeXが良いと思います。

f:id:yyhhyy:20160709021539j:plain

日本語を表示させる時の注意

キモは、「-H font.tex」とその中身。

このサイトを参考にしました。

qiita.com

TeXに変換した際にヘッダーとして使うべきLaTeXの記述をTeXファイルにしておいて、それを読み込ませながらpandocは変換をしてくれます。

font.texの中身

ここで日本語フォントになるように設定します。Noto Sans CJKを使いたいのでxltxtraのパッケージを使っています。

\usepackage[size=a4,scale=3.5]{beamerposter}
\usepackage{xltxtra}
\setmainfont{Noto Sans CJK JP}
\setsansfont{Noto Sans CJK JP}
\setmonofont{Noto Sans CJK JP}
\XeTeXlinebreaklocale ``ja'']
\hypersetup{unicode=true}

font.texの置き場所

pandocで変換する時に同じディレクトリに置いておかないといけません。pandocを使う時の作業ディレクトリを決めておいて、そこに置いておけばよいでしょう。

ヘッダーを遊べばもっと面白いことも。

beamerは既存のギャラリーも豊富ですが、

Beamer Theme Matrix

ユーザーが独自に作っているものも美しいものがいっぱいあります。

latex.simon04.net

例えば、ここのKeynote風のものからヘッダーを頂いて、

www.shawnlankton.com

\usepackage[size=a4,scale=3.5]{beamerposter}
\usepackage{xltxtra}
\setmainfont{Noto Sans CJK JP}
\setsansfont{Noto Sans CJK JP}
\setmonofont{Noto Sans CJK JP}
\XeTeXlinebreaklocale ``ja'']
\hypersetup{unicode=true}
\usetheme{default}
\usepackage{color}
\useoutertheme{default}
%\usepackage{texnansi}
\usepackage{marvosym}
\definecolor{bottomcolour}{rgb}{0.32,0.3,0.38}
\definecolor{middlecolour}{rgb}{0.08,0.08,0.16}
\setbeamerfont{title}{size=\Huge}
%\setbeamercolor{structure}{fg=gray}
\setbeamercolor{structure}{fg=white}
\setbeamertemplate{frametitle}[default]%[center]
\setbeamercolor{normal text}{bg=black, fg=white}
\setbeamertemplate{background canvas}[vertical shading][bottom=bottomcolour, middle=middlecolour, top=black]
\setbeamertemplate{items}[circle]
\setbeamerfont{frametitle}{size=\huge}
\setbeamertemplate{navigation symbols}{} %no nav symbols

をfont.texとすれば、

f:id:yyhhyy:20160709023426j:plain

Keynote風になります。

改ページに注意

通常のMarkdownでは「---」が改ページですが、beamerに限っては、第2段階の見出し「##」で改ページされます。その点だけ注意が必要です。

また、第1段階の見出し「#」は、beamerのセクション扱いとなります。

デカイ文字も可能

これはLaTeXにすることが前提となりますが、LaTeXコマンドを使ってbeamerで大きい文字にすることも可能です。

例えば、

\Huge 大きい文字Huge
\normalsize 普通の文字normalsize
\fontsize{120pt}{0cm}\selectfont 大きい文字120pt
\fontsize{80pt}{0cm}\selectfont 大きい文字90pt
\fontsize{22pt}{0cm}\selectfont 普通の文字22pt

とした結果は、

f:id:yyhhyy:20160709175939j:plain

となります。

PDFをPowerPointにする

Adobe CC のススメ

PDFをPowerPointにするには、大きく2つ

  1. Adobe Acrobat を使う

  2. Google Driveを使う

がありますが、レイアウトの崩れ等を考えると、Acrobatの方が優秀です。

折角なのでこの機会にAdobe CC に登録してしまいましょう。IllustratorPhotoshopも最新になりますし、After EffectsもPremiereもあれば、動画のファイル変換もできます。Adobeはいつからこんなに神になったのでしょうか?

AcrobatPowerPoint

書き出しでMicrosoft PowerPointが選べます。これで、Microsoftユーザーから「パワポで欲しい」と言われた時も対応できます。

f:id:yyhhyy:20160709023940j:plain

ということで無事にPowerPointでも開けます。

f:id:yyhhyy:20160709024118j:plain

結びにかえて

勿論、▷を入れるだとか、⇒を入れるだとか、PowerPointならではのことは、Markdownはできません。 しかし、企画書の箱書き段階までは、テキストエディタで書けるのは作業効率が上がりますし、元のファイルをMarkdownにしておくことで、何時でもWordにもPowerPointにも変換できる、というのは、とても便利だと思います。