サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
www.marketechlabo.com
2種類のBigQueryエクスポート GA4ではユニバーサルアナリティクスと異なり、無料版でもBigQueryエクスポートを使えるようになったのが大きな変化である。 このBigQueryエクスポートについて、Googleのヘルプページでは以下の記述がある。 1日1回、すべてのデータのエクスポートが行われます。さらに、データのエクスポートは1日を通して継続的に実行されます(詳しくは下記の「ストリーミング エクスポート」をご覧ください)。 https://support.google.com/analytics/answer/9358801 1日1回、すべてのデータのエクスポート データのエクスポートは1日を通して継続的に実行されます 2種類のエクスポートがある。 これらは設定画面の「頻度」に対応している。 前者は1日1回、前日のデータを全部処理(再計算)して出力されるデータ。 後者はニアリア
たとえばネストされたイベントパラメータga_session_id(整数型)とpage_location(文字列型)をフラット化するクエリは select user_pseudo_id, event_name, (select p.value.int_value from unnest(event_params) p where p.key = "ga_session_id") ga_session_id, (select p.value.string_value from unnest(event_params) p where p.key = "page_location") page_location from `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`; だが、この中で動的になるのは以下の部分 (se
テーブルの場所 GA4のBigQueryエクスポート設定で指定したプロジェクト データセット「analytics_999999999」(「999999999」の部分はプロパティID) テーブル名 前日までのデータ(日付別に)「events_20210101」 「20210101」の部分は日付 今日のデータ、前日未集計分のデータ「events_intraday_20210102」 出力時刻は午前7時ごろ。レポートのタイムゾーンに依存するため、米国のままにしていると夜11時ごろに出力される。GA4ではなくFirebase Analyticsの場合はUTC。タイムゾーン設定がない。 日付でシャーディングされたテーブル GA4のBigQueryエクスポートでは日単位でテーブルが分かれている 前日まで:events_20210101, events_20210102, …, , events_202
Googleは2024年中のChromeのサードパーティcookie廃止に向けて動いている。AppleはすでにITPによってサードパーティcookieはデフォルトで使えなくなっているということで、2024年をもってほぼすべてのウェブブラウザでサードパーティcookieが無効化されることになる。 そんな中さまざまな自称「ポストcookie」「cookieレス」ソリューションが出てきているのだが、それらはどれも完全にサードパーティcookieを代替するわけではなく、これまでサードパーティcookieが担ってきた役割を部分的に違う方法で実現しようとしているものにすぎない。ここではソリューションの種類と、それらがサードパーティcookieのどんな機能を代替するのか紹介する。 サードパーティcookieの役割 cookieの役割にはさまざまなものがあるが、サードパーティcookieは主にドメインをま
WordPressのウェブサイトを静的化し、Firebaseで配信する | marketechlabo Netlifyとは WordPressで静的サイトを生成し、Netlifyで公開する。Netlifyは 静的サイトのホスティング AWS Lambdaのような関数 フォーム などができる、サーバレスで何らかのサービスを配信するためのプラットフォームである。個人用途であれば大部分の機能を無料で使える(複数ユーザ、Basic認証などは有料)。 端的に言うと静的サイトの配信を無料でできるサービスである。リダイレクトや転送(リバースプロキシ)も可能でリスト形式で設定できる。動的コンテンツは別のサーバに設置してそこに転送するということも可能。独自ドメインも使用でき、自動でSSL証明書(Let’s Encrypt)も取得、適用、更新してくれる。これが無料とは至れり尽くせりである。 コンテンツのでデプ
BigQuery ML(BQML)では 線形回帰 ロジスティック回帰 k-meansクラスタリング AutoML Tables XGBoost DNN 時系列(ARIMA) が使える。当初は線形回帰とロジスティック回帰だけだったが今では実用的な手法が増えた。何よりもXGBoostが使えるようになったのが大きい。 XGBoostのメリット XGBoostは語弊を恐れずに言うと特に何も考えなくてもそれなりの精度が出る、素人でもそこそこのアウトプットを出せてしまう手法である。これまでの線形回帰やロジスティック回帰は前提条件が扱いが難しい手法だった。 XGBoostがお手軽というのは、 正規化不要 カテゴリ変数と連続量を意識しなくてもいい 欠損値があってもいい つまり特徴量の前処理の面倒な部分がかなり軽減されている。与えられた変数を特に加工しなくても使える。たとえばAutoML Tablesはモデ
GA4の計測の検証はBigQueryエクスポートを使って行うのが普通になる。検証の方法にはいくつかあるのだが、ほかの方法だと欠点がある。 リアルタイムレポートではイベントが発生し、パラメータに値が入ってきているのはわかるが、どのイベントでどのパラメータの値が入っているかまではわからない。DebugViewは有効化しないと使えない。 BigQueryエクスポートを使うとすべてのサイト訪問に対して計測して数分以内には各パケット(イベント)でどのパラメータにどの値が入っているかがわかるし、詳細な検証ができる。これはユニバーサルアナリティクスにはなかったメリットである(GA360を除く)。 GA4のBigQueryデータはパラメータやユーザープロパティがネストされているため、クエリでは毎回それをフラット化する手続きをする必要があり、やや面倒。 検証の目的に合わせて使うクエリがパターン化されるのでこ
プログラムの中でGoogleのサービス(API)を操作するとき、Google認証が必要になる。しかしこれがややこしく、Googleの公式のドキュメントの記述も古かったりサービスの種類によって方法がばらばらだったりして分かりにくい。この記事ではこれを整理して説明する。 プログラムでGoogle認証する場面 具体的なケースを想定するとわかりやすいのだが、 たとえばGoogleアナリティクスからAPIでデータ取得し、そのデータをGoogle Cloud StorageやBigQueryに書き込みする場合、Googleアナリティクスのレポート閲覧権限(特定のビューに紐づいた)とGCPの権限(Google Cloud Storageの書き込み権限など)が必要になる。その権限を持ったGoogleアカウントで認証をすることになる。 この認証方法には大きく2通りの方法がある。 2通りの認証方法 サービスア
Googleアナリティクス4プロパティが登場し、誰でもBigQueryにログを出力できるようになった。ログ分析を始める環境は揃ったわけだが、ログ分析のノウハウはあまり世に出ていない。SQLを使ってこれらを分析する方法を少し紹介する。どんな高度なログ分析をするにしても、これが基本となる。 ウェブ分析の指標 ウェブ分析の基本は ページビュー数 セッション数 人数 のカウントである。複雑な分析も、結局カウントしているのはこの3つの指標に集約されることが多い。Eコマースになると購入金額の合計なども入ってくることはある。 そしてこれに「○○した」という条件が付いて イベント○○が発生した回数 ○○したページビュー数 パラメータ△△の値が□□だったイベント○○が発生した回数(ページ□□のページビュー数) ○○したセッション数 ○○した人数 をひたすらカウントする。たとえば 資料ダウンロードボタンをクリ
Googleアナリティクス4は当初コンバージョン設定するためにはコンバージョン対象ページでタグをカスタマイズする必要があったのだが、アップデートでタグのカスタマイズが不要になった。しかしユニバーサルアナリティクスのようにコンバージョン設定画面でURLを指定できるわけではなく、少し回りくどい設定が必要になる。この記事ではその方法を説明する。 機能のアップデート 既存のイベントから、イベント名やイベントパラメータの条件に基づいて新たなイベントを生成する機能が追加された。 これは大変便利な機能で、これまでイベントの再定義をしようと思ったらSDK(JavaScriptのタグやアプリのSDK)の入れ替えが必要だったのだが、それをしなくても管理画面の設定だけである程度自由に定義できるようになった。 既定のイベントだけでなくカスタムしたイベントごとのカウントがダッシュボードで把握できるようになったし、コ
Digdag / TreasureData Workflowのエラー処理。エラー時の処理を指定する_errorだけでなく_checkやfail:>などの処理もあり、エラー発生/成功時の処理をカスタマイズできる。自由度が高く、ワークフローの階層構造とともにうまく使えばワークフローのコードが簡潔になる。公式ドキュメントの説明が不十分なので補足する。 Digdagがエラーと判定して_errorを発動する条件 コマンドの戻り値が0であれば正常、0でなければエラーとみなす。つまりシェルスクリプト(sh:>)の場合は exit 1 であればエラーとなる。 _errorを複数の階層で記述するとどうなるか _errorは同一階層には複数記述できないが、異なる階層には記述できる。以下のようにワークフローを設定する。 test.dig +task1: +task2: sh>: exit 1 _error: e
マニュアルには書いていないGTMとGoogleアナリティクスの高度な使い方。とりあえず設定しておくと便利な変数やトリガーの使い方に加え、データレイヤーを徹底的に使いこなす。さらには計測だけでなく検証の手間を大幅に省くタグアシスタントの裏技を紹介する。最後にGTMを使ったGoogleアナリティクスの高度なcustomTaskや推奨カスタムディメンションも触れる。 GTM設定の黒魔術 便利な変数 ページビューID ページビュー固有のID 一度ページを読み込んでから、次に読み込むまでの間で保持されるID そのIDをさまざまなツールに送ればそれをキーにデータ連携できる。 ツールA,B,Cの間でIDを連携する場合、 ツールAのIDを取得→Bに送る ツールAのIDを取得→Cに送る ツールBのIDを取得→Cに送る (CのIDを取得→Aに送る?) (CのIDを取得→Bに送る?) など、ツール数が増えると複
個人にかかわる情報の分類 個人情報 個人識別符号(指紋などのユニークな身体的特徴や免許書番号など、政令で決まっている)→紐づけなくても単独で個人情報扱い 要配慮個人情報(信条、社会的身分、病歴、犯罪歴など、政令で決まっている)→扱いがより厳格 (その他の個人情報) 法的に扱いが決まっている非個人情報 加工情報(個人情報を非個人情報化したもの) 匿名加工情報 仮名加工情報 個人関連情報 個人情報 個人データ(検索可能) 保有個人データ(開示、訂正、消去等の権限を有するもの。2020年の改正で新たに6か月未満で消去するデータも含めるように) 個人情報の中で請求対応が必要なのは保有個人データのみ それぞれの扱い方の規制 取得する際には目的を通知または公表 要配慮個人情報を取得する場合は本人の同意が事前に必要 第三者提供 事前に同意が必要 第三者提供ではなく委託であれば同意不要。しかし監督が必要
Bitnamiとは? BitnamiはWordPressやRedmineなどのウェブアプリケーションをPHPやMySQLなどのミドルウェアとともに一式設定済みでパッケージ化して提供してくれるソリューション。例えばAWSのEC2でWordPressを搭載したインスタンスを作るとき、一式インストール済みのインスタンスを選択することができるが、これを提供しているのがBitnamiである。 自前でPHP+Apache+MySQL+CMS(WordPress)をインストールするのとBitnamiはディレクトリ構成や設定ファイルが異なる。 一般的には1インスタンス1パッケージの形で提供されたものを使うことになり、あまりそのあたりを気にせずに使える。ただし1インスタンスに複数のパッケージを同居させるなど拡張して使う場合などには中身を触ることになり、仕組みを知っておく必要がある。 同じインスタンスにWor
データ処理バッチでシェルスクリプトは便利 データ処理などでバッチプログラムを書くことは多い。Pythonなどのプログラム言語を使って全部記述する方法もあるし、最近ではGUIのワークフローを描けるツールも出てきている。 ただシェルスクリプトは依然として強い。シェルスクリプトは概して動作が高速で、イレギュラー処理に対しても柔軟に対応できる。gcloudやawscliなどのコマンドを使って記述できるので、できないことはない。機能がなければコマンドをインストールすることも可能。困ったときにも確実にゴールにたどり着くメリットがある。プログラム言語だとライブラリの出来に依存するし、ワークフロー系のツールは機能が実装されていないと詰む。イレギュラー処理を扱えない場合がある。 便利なツールが出てきている時代ではあるが、シェルスクリプトを覚えておくのはおすすめである。バッチ処理ではエラーハンドリングが必須だ
時系列のアプローチ 単系列 ざっと見る 定常性の確認 ARIMA/SARIMAモデルをあてはめる 複数系列の関係→VAR(ベクトル自己回帰)モデル その他の変数がある(時系列+回帰)→状態空間モデル (単なるラグ変数回帰→目的変数自体の時系列性が反映されない) ライブラリ{forecast}を使う 以下、データはy.tsとする 時系列のデータ形式 時系列データにはいくつかの形式がある。 ts: Rの基本の時系列オブジェクト。ほとんどの時系列ライブラリはこの形式の時系列データを扱う xts: データフレームとtsの間に位置づけられる、時系列データを便利に扱えるようにした形式 zoo: データフレームとxtsの間の形式 われわれが一般的に扱うデータ形式はデータフレームで、時系列データも元はCSVやデータベースなどからデータフレームの形式で与えられることが多い。たとえば日付を表す列と値の列がそれ
Chromeが2年以内にサードパーティcookieをブロックすると正式に発表しました。 https://blog.chromium.org/2020/01/building-more-private-web-path-towards.html いろいろなことが言われていますが、具体的に何が起こるのか、混同しやすいところを含めて初心者でもわかるようにまとめました(このサイトでは珍しい初心者向けの記事です)。 cookieを取り囲むブラウザ環境の変化のおさらい これまではiOS/SafariがITPの取り組みの中でトラッキング目的のサードパーティcookie(※)をブロックしてきましたが、これでSafariとChromeの両方でトラッキング目的のサードパーティcookieをブロックすることになります。スマートフォン、デスクトップ、タブレットで大半のシェアが適用対象になるわけです。 なおFire
Google Cloud Functions / Cloud Functions for Firebaseの微妙な使い勝手 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が可能)。 複数のFunctionsを使う構造になっていない(index.jsのみ)→工夫が必要 管理画面からのデプロイができない Cloud Functions for Firebaseで登録した関数は
無料でPythonの実行環境を使わせてもらえるGoogle Colaboratory。しかもGPUと12GBのメモリ、350GBのディスクまで使える環境であり、手元のPCよりハイスペックな人も多いだろう。 RユーザにとってはPythonだけでなくRでも使えたらいいのにと思うところである。そこで、この記事ではこの環境でRを使う方法を解説する。 Rを使う4つの方法 実はGoogle ColaboratoryのインスタンスにはRの環境(RのバイナリとJupyter Kernel)がインストールされており、わずかな手順で使えるようになるのである。 参考までにインストールされているKernelの一覧はマジックコマンドから確認できる。 !jupyter kernelspec list Available kernels: ir /usr/local/share/jupyter/kernels/ir p
最近では機械学習の計算のためにLinuxマシンを構築しては消し、を繰り返すことが多い。サーバの構築と消去が柔軟に可能なことからもEC2やGCEなどクラウドのインスタンスをよく使うということも影響している。 この記事では一般的なサーバ構築の記事では紹介されていない、クラウドのインスタンスで意外と盲点になる点を中心に、機械学習の計算用サーバとして安定した運用をするために最低限必要な設定をまとめた。 Linuxで最初にやっておくべき設定 Amazon EC2やGoogle Compute Engingなどのクラウドインスタンスのデフォルトの設定では不都合があるため、設定を追加する必要がある。 スワップメモリの設定 クラウドのインスタンスではデフォルトでスワップメモリが設定されていないため、念のため設定しておく必要がある。以下は/swap.imgとして4GBのスワップファイルを設置する例。 sud
リモートデスクトップで接続される専用のWindowsマシンを用意するにあたり、VPN接続は必須である。VPNにもさまざまなプロトコルがあるが、現在サーバ・クライアントともにOpenVPNが最もインストールしやすい。 OpenVPNクライアントをWindows10にインストールし、そこから常時VPNサーバに接続する形でプライベートネットワークを作り、外の端末からセキュアにWindows機にリモートデスクトップ接続する。Windows機をVPNサーバにするのではない。このやり方、意外と難しいので説明する。 OpenVPNクライアントのインストール vpnux Clientではなく公式クライアントをインストールする。 ユーザモードとサービスモード ユーザモード OpenVPNクライアントにはユーザモードとサービスモードがある ユーザモードは各ユーザがOpenVPNアプリケーション(openvpn
Googleアナリティクス4ではサイト訪問の行動ログをBigQueryに出力できるようになった。 従来のGoogleアナリティクス(ユニバーサルアナリティクス)ではGoogleアナリティクス360(GA360)を利用し、そのうえでGoogleに申請しないとログデータをBigQueryに出力することはできなかった。そのためコスト面での高いハードルがあったのだが、Googleアナリティクス4ではGoogle Cloud Platform(GCP)の従量課金コストだけでログをBigQueryに出力できるようになったのである。以前はこの設定で直接Firebaseの管理画面からダミーアプリを作る手順が必要だったため大変難しかったが、現在ではアナリティクスの管理画面だけでできるようになった。 Googleアナリティクス4というのはもともとアプリ用に存在していたFirebaseの計測機能(Google
※クエリ文字列はある場合とない場合がある ※ハッシュはない場合が多い プロトコル(protocol) 「http://」か「https://」のような先頭の「://」まで。通信の方式を表す。 http://www.example.com/audio/list.php?page=2&sort_by=price https://www.example.com/audio/list.php?page=2&sort_by=price いつも先頭につけている http:// や https:// の文字列がプロトコルである。インターネット上ではwebのみならずメールやFTPなど、さまざまな種類の通信が行われている。その中で通信の種類を特定するのがプロトコルなのである。webは http https のいずれか2種類。「http://」は暗号化されていない通信で、「https://」は暗号化された通信
ITPの仕様 次々と新しいバージョンがリリースされるITP。微妙にアップデートされ、仕様がわかりにくくなっているので現時点で最新のものを解説する。 ITPの目的と概要 われわれウェブサイト運用者は cookieやローカルストレージなどを使ってブラウザにドメインのデータを保持し、 それらのデータを必要に応じてツール間で連携する ことによって行動計測やコンテンツの出し分けなどのマーケティング活動を行っている。ITPはウェブサイト訪問者のプライバシー保持のためにそれを制限する仕組みである。具体的に何をやっているのかざっくりまとめると、 この3つのケースにおいて cookieなどを使ったデータ保持が短期間しかできなくなる(期間の長さはケースごとそれぞれ異なる) リファラが使い物にならなくなる 可能性があるということである。その結果 コンバージョントラッキングができない リマーケティング広告が配信で
Googleアナリティクスで収集しているデータ(メジャメントプロトコル)をBigQueryに送り、集計・可視化できるようにする。無料版のGAにも対応し、しかもサーバレスでシンプルに実装できる。 本来BigQueryを使ったウェブ行動の詳細分析はGA360を使うべきなのだが、限りなく低コストでこんなことができるという参考程度で紹介する。 通常無料版のGoogleアナリティクスではできないログベースの行動分析をするのに使ったり、有料版であったとしてもGAはどのようなトラフィックを除外して集計しているのか、Googlebotなどのクローラがどんな動きをしているのかなどを検証するのに使うといいかもしれない。 原理はGoogleアナリティクスのJavaScriptがGoogleの計測サーバに送っているパケットを自前のサーバに送ってログ化するというシンプルなものである。 従来はデータ収集用のサーバを構
Rのおすすめパッケージをアップデートしてまとめた。定番の分析手法をはじめ、可視化やデータ処理に便利なものなど、幅広く紹介した。中にはマストというものもあるし、意外と知られていないがインストールしておくと便利なものまで、使い方の例も挙げて説明している。 ミドルウェア的なレイヤーのライブラリ(must) curl ファイルをwebからダウンロードするときに使う。 データファイルやパッケージのダウンロードが発生する処理で内部的に使われるライブラリで、他のパッケージのインストールの際に同時にインストールされることが多く、意識されることは少ないパッケージ。たまに依存関係の問題でも解決されずに未インストールの場合があるので、明示的にインストールする必要がある。 read.csv('https://...') などのために必要。 devtools GitHubからのインストールなど。ほとんどがGitHu
XGBoostは機械学習手法として 比較的簡単に扱える 目的変数や損失関数の自由度が高い(欠損値を扱える) 高精度の予測をできることが多い ドキュメントが豊富(日本語の記事も多い) ということで大変便利。 ただチューニングとアウトプットの解釈については解説が少ないので、このあたりについて説明する。 XGBoostとは? 勾配ブースティングのとある実装ライブラリ(C++で書かれた)。イメージ的にはランダムフォレストを賢くした(誤答への学習を重視する)アルゴリズム。RとPythonでライブラリがあるが、ここではRライブラリとしてのXGBoostについて説明する。 XGBoostのアルゴリズム自体の詳細な説明はこれらを参照。 https://zaburo-ch.github.io/post/xgboost/ https://tjo.hatenablog.com/entry/2015/05/15/
セッションやユーザの識別にはSQLiteでは対応していないウィンドウ関数が必要になるし、データのサイズが大きくなるとSQLiteでは不安なところもある。 ということで、データサイズがある程度大きくなっても対応可能で、オープンソースでは珍しくウィンドウ関数など集計・分析機能に優れたPostgreSQLへアクセスログを取り込む方法を解説する。 アクセスログをPostgreSQLに取り込む NCSA拡張形式のログを取り込む 環境の準備(linux) SQLiteと違って環境の準備が必要になる。 PostgreSQLのインストール、initdbが完了している前提で ユーザを作成 $ su postgres $ createuser xxx データベースを作成 ログにはそもそもマルチバイト文字は含まれないので文字コードSQL_ASCIIを強制してデータベースを作成する。 通常initdbで文字コード
今では誰もが簡単にアクセス解析をできるようになった。 Googleアナリティクスという無料のツールがあり、そのタグをHTMLファイルに記入することできれいな分析結果の画面が手に入る。有料だがAdobe Analyticsを導入しているサイトも多い。 最近は分析というと、こういったツールの画面を見ることが中心になってしまっている。 ところがそこに出てくるのはGoogleやAdobeによって加工・集計された数字だ。Googlebotなどの検索ロボットのアクセスも除外されてしまう。実は裏側にはログがあって、それを加工・集計して見たいアウトプット(媒体ごと流入数一覧、コンバージョンを生んだランディングページの一覧など・・・)を出しているのである。 今みたいに高度なアクセス解析ツールがなかった昔は直接生ログ解析を行っていた。生ログを加工・集計するソフトがあって、そういったソフトを通じて集計データを見
次のページ
このページを最初にブックマークしてみませんか?
『marketechlabo – デジタルマーケティングに取り組む企業のために、データ・テクノ...』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く