Digdag / TreasureData Workflowのエラー処理

Digdag / TreasureData Workflowのエラー処理。エラー時の処理を指定する_errorだけでなく_checkやfail:>などの処理もあり、エラー発生/成功時の処理をカスタマイズできる。自由度が高く、ワークフローの階層構造とともにうまく使えばワークフローのコードが簡潔になる。公式ドキュメントの説明が不十分なので補足する。 Digdagがエラーと判定して_errorを発動する条件 コマンドの戻り値が0であれば正常、0でなければエラーとみなす。つまりシェルスクリプト(sh:>)の場合は exit 1 であればエラーとなる。 _errorを複数の階層で記述するとど…

続きを読む →

Googleアナリティクス/GTMの高度でおすすめのデフォルト設定

GTMとGoogleアナリティクスの高度な実装。 パーソナライズやエンゲージメント分析をする際には必須になるものを紹介する。 主にGoogleアナリティクス360でBigQueryを使って分析する際に役立つ。 必須のcustomTask customTaskはGoogleアナリティクスのスクリプトがデータ収集サーバにデータを送る(メジャメントプロトコル)ときに任意の処理を指定して実行するオプションである。 GTMを使ってGoogleアナリティクスとさまざまなツールを連携する際、customTaskにはデフォルトでこれを設定するといい。 function() { return function(…

続きを読む →

個人情報保護法の整理・情報の種類別の扱い方(2020年改正反映)

個人にかかわる情報の分類 個人情報 個人識別符号(指紋などのユニークな身体的特徴や免許書番号など、政令で決まっている)→紐づけなくても単独で個人情報扱い 要配慮個人情報(信条、社会的身分、病歴、犯罪歴など、政令で決まっている)→扱いがより厳格 (その他の個人情報) 法的に扱いが決まっている非個人情報 加工情報(個人情報を非個人情報化したもの) 匿名加工情報 仮名加工情報 個人関連情報 個人情報 個人データ(検索可能) 保有個人データ(開示、訂正、消去等の権限を有するもの。2020年の改正で新たに6か月未満で消去するデータも含めるように) 個人情報の中で請求対応が必要なのは保有個人データのみ そ…

続きを読む →

PythonプログラムでGoogle認証してGoogleのサービスを利用する

プログラムの中でGoogleのサービス(API)を操作するとき、Google認証が必要になる。しかしこれがややこしく、Googleの公式のドキュメントの記述も古かったりサービスの種類によって方法がばらばらだったりして分かりにくい。この記事ではこれを整理して説明する。 プログラムでGoogle認証する場面 具体的なケースを想定するとわかりやすいのだが、 たとえばGoogleアナリティクスからAPIでデータ取得し、そのデータをGoogle Cloud StorageやBigQueryに書き込みする場合、Googleアナリティクスのレポート閲覧権限(特定のビューに紐づいた)とGCPの権限(Googl…

続きを読む →

データドリブンな広告運用と、その背後にある技術・理論

データに基づいた広告運用をするのであれば、データを適切に扱うための技術(方法論)に則る必要がある。データドリブンな運用に必要な技術を、使われる文脈とコアとなるキーワードととともに紹介する。データに基づいた最適化のプロセスは手動運用、自動運用ともに基本は同じであり、自動運用は機械がそれを行っているだけである。データドリブンで手動運用する際のポイントと、自動運用がそれをいかにして効率化しているかを紹介する。最適化の裏側で何が行われているか、自動運用との付き合い方においても参考になるだろう。 データドリブンな運用とは? 「いろいろやって効果のいいものに寄せる」 が基本。ただし制約条件はいろいろある(…

続きを読む →

GoogleアナリティクスでcanonicalをページのURLとして自動で採用する

アクセス解析における計測URLの分散の問題 Webサイトのページビュー計測では、同一ページのページビュー計測は1つのURLのページビューとして集約されることが望ましい。ところがutm_sourceなどのダミーパラメータ付きURLや「index.html」の有無によって本来同一ページのはずなのにURLが異なり、ページビュー数の評価が分かれてしまうことがある。あらかじめサイト構成が「1ページ=1URL」を厳格に守ってくれていればいいのだが、必ずしもそういうわけにはいかない。実際には1ページに複数のURLが発生することも多いのである。 SEOでは行われているURL正規化 SEOではその問題を解決する…

続きを読む →

サルでもわかるGoogle Chromeのプライバシー対策で何が起こるのか

Chromeが2年以内にサードパーティcookieをブロックすると正式に発表しました。 https://blog.chromium.org/2020/01/building-more-private-web-path-towards.html いろいろなことが言われていますが、具体的に何が起こるのか、混同しやすいところを含めて初心者でもわかるようにまとめました(このサイトでは珍しい初心者向けの記事です)。 cookieを取り囲むブラウザ環境の変化のおさらい これまではiOS/SafariがITPの取り組みの中でトラッキング目的のサードパーティcookie(※)をブロックしてきましたが、これでS…

続きを読む →

Google Cloud Functions / Cloud Functions for Firebaseの微妙な使い勝手

AWSのLambdaは高機能だが、GCPのCloud Functionsは機能が少なめでシンプル。ただ微妙なクセがある。 Google Cloud FunctionsとCloud Functions for Firebaseの関係 Cloud Functions for FirebaseはGoogle Cloud Functionsを簡素化してFirebaseで使えるようにしたもの Node.jsのバージョン8のみ Google Cloud Functionsは独自ドメインが使えないが、Cloud Functions for Firebaseでは使える(独自ドメインSSLのWeb APIが可能…

続きを読む →

WordPressのウェブサイトを静的化し、Firebaseで配信する

Firebaseといえばネイティブアプリ(iOS, Android)のイメージがあるが、ウェブ運用でも便利。今回は純粋なWebサイトだけの運用のケースで環境をFirebaseに統一してみた。使うのは以下の機能 Firebase Hosting: 静的HTML、画像などのファイル配信 Google Analytics for Firebase: 計測 これらを独自ドメインのHTTPS環境で公開する。コンテンツはWordPressで管理、生成する。 ドメインは https://marketechlabo.com https://www.marketechlabo.com wwwのないURLからww…

続きを読む →

Bitnamiで1インスタンスに複数のパッケージをインストールする

Bitnamiとは? BitnamiはWordPressやRedmineなどのウェブアプリケーションをPHPやMySQLなどのミドルウェアとともに一式設定済みでパッケージ化して提供してくれるソリューション。例えばAWSのEC2でWordPressを搭載したインスタンスを作るとき、一式インストール済みのインスタンスを選択することができるが、これを提供しているのがBitnamiである。 自前でPHP+Apache+MySQL+CMS(WordPress)をインストールするのとBitnamiはディレクトリ構成や設定ファイルが異なる。 一般的には1インスタンス1パッケージの形で提供されたものを使うこと…

続きを読む →