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

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

続きを読む →

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パッケージの形で提供されたものを使うこと…

続きを読む →

bashスクリプトのエラー処理のベストプラクティス

データ処理バッチでシェルスクリプトは便利 データ処理などでバッチプログラムを書くことは多い。Pythonなどのプログラム言語を使って全部記述する方法もあるし、最近ではGUIのワークフローを描けるツールも出てきている。 ただシェルスクリプトは依然として強い。シェルスクリプトは概して動作が高速で、イレギュラー処理に対しても柔軟に対応できる。gcloudやawscliなどのコマンドを使って記述できるので、できないことはない。機能がなければコマンドをインストールすることも可能。困ったときにも確実にゴールにたどり着くメリットがある。プログラム言語だとライブラリの出来に依存するし、ワークフロー系のツールは…

続きを読む →

babel/webpackを使ってJavaScriptのソースをリリース用に整備する

babelは新しいESの記法で作ったJavaScriptのソースを古いブラウザでも実行可能に変換してくれるパッケージ。webpackはJavaScriptのソースコードをminifyするパッケージ。普通は組み合わせて使う プロジェクトディレクトリにnode_modulesを作成する場合 パッケージを構築するイメージ プロジェクトディレクトリの作成 mkdir mylib cd mylib package.jsonの作成 npm init パッケージのインストール npm install –save-dev @babel/core @babel/preset-env babel-loader …

続きを読む →

Googleクラウドで格安お手軽スケーラブルな静的ウェブ配信

Google Cloud Platformの静的コンテンツ配信機能は低コストで手軽に使うことができる。サーバサイドプログラム(PHPなど)のかかわらない静的ウェブサイトの配信(HTML+CSS+JavaScript+画像+動画など)だけであれば、ApacheやNginxなどのウェブサーバなど不要でできてしまう。スケーラブルでトラフィックによるサーバ負荷を気にする必要がない低コストの環境が簡単に使える。WordPressでも静的配信をしているのであれば相性がいい。キャンペーンのランディングページなどもこれで十分なケースがほとんどである。 この記事ではGoogle Cloud Storageを使っ…

続きを読む →

ITPの変遷・最新の仕様と挙動の違い/対策の必要性と方法

ITPの仕様 次々と新しいバージョンがリリースされるITP。微妙にアップデートされ、仕様がわかりにくくなっているので現時点で最新のものを解説する。 ITPの目的と概要 われわれウェブサイト運用者は cookieやローカルストレージなどを使ってブラウザにドメインのデータを保持し、 それらのデータを必要に応じてツール間で連携する ことによって行動計測やコンテンツの出し分けなどのマーケティング活動を行っている。ITPはウェブサイト訪問者のプライバシー保持のためにそれを制限する仕組みである。具体的に何をやっているのかざっくりまとめると、 この3つのケースにおいて cookieなどを使ったデータ保持が短…

続きを読む →