コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

CNAMEトラッキングとは何かざっくりまとめる

どのようなことを行うのかというのと理由をざっくり

そもそもどういう場面で使われるのか

広告媒体においては、どのユーザーがどのサイトを閲覧したか?という情報は非常に有用で、行動したデータを蓄積することでそのデータからユーザーの興味がありそうな広告を提示することができる。

そのため、ユーザー個人を特定しないという前提の元で横断的なWeb閲覧履歴がほしいのだが、基本的にこの情報を取得することには様々な問題が絡み合っている。

とられる手法

自社のサブドメインの向け先をトラッキングしたい会社のサーバに向ける手法、CNAME自社ドメインをほかサイトのドメインに向ける

なぜこの手法をとるのか

背景

ITP2.3が適用されている現在では、閲覧しているサイトとは別のドメインから発行したCookieやJSを使って発行されたCookieの有効期限はとても短い。

そのため、その回避策として同一ドメインサイトで発行したCookie(≒ 1st Party Cookie)として、Cookieを使えば問題がない、という発想に至ったのがこの手法。

(ファーストパーティクッキーとは、という話は過去記事参照)

危険性

この手法、トラッキングをしたい会社に自社サイトで発行したCookieが見えてしまう可能性があるため、良し悪しがある。

参考

GitHubのMarkdown上でアコーディオンっぽい挙動をさせたい場合は details / summary のHTMLタグを使うことで実現できる

GitHub小ネタ

利用するHTMLタグ

< details >: 詳細折りたたみ要素 - HTML: HyperText Markup Language | MDN

使い方

通常のHTMLと同じ使い方をする

以下のように折りたたみUIが作れる。HTMLで囲んだ中身は自動的にマークアップはしてくれなくなるので注意

f:id:shinkufencer:20200912001736g:plain

参考リンク

BigQueryを無料で試したい場合はサンドボックスというものが存在するので活用する

仕事ではなく私事で試したい人への小ネタ

出典

クレジットカードは不要 : クエリを無料で試せる BigQuery サンドボックス | Google Cloud Blog

やり方

ヘルプに書いてある

BigQuery サンドボックスの使用  |  Google Cloud

いままでGCPを扱っていないアカウントだと割と簡単で、上記の内容を踏まえると以下の手順で行える。

基本的にGCPはプロジェクトに紐づくお支払い情報を設定しない限りは請求先が確定しないのでお金の請求先が不明瞭な状態なので有料なものは使えない

どういうケースで利用できるか

  • BigQueryを使ってみたいがお金を溶かさないか心配
  • 使えそうなデータは持っていないので、大量の何かしらのデータで機能を試したい

参考リンク

GitHubでのPullRequestでマージしたブランチ名から該当PRを検索する方法

小ネタTips

出典元

Issue およびプルリクエストを検索する - GitHub Docs

今回の想定場面

  • マージするときに使ったブランチ名はわかる
  • そのブランチをマージした際のPRを知りたい

やりかた

PullRequestの検索窓で head:{{マージしたブランチ名}} で検索をかければOK

マージ後のPRから feature/add_first を検索したい場合は以下

f:id:shinkufencer:20200910005046p:plain

参考リンク

GitHub での検索について - GitHub ヘルプ

GoogleAnalyticsのセッションの切れるタイミングを理解する

公式ドキュメント掘り下げる

出典

アナリティクスでのウェブ セッションの算出方法 - アナリティクス ヘルプ

考え方のまとめ

大きく以下の5パターン

  • 30分以上何もしない
  • 日をまたぐ
  • 参照サイトが変わる
  • キャンペーンタグのクエリストリングが設定されたURLクリック
  • Google広告の自動タグが設定された広告をクリックしてきた場合

30分以上何もしない

セッションはページを遷移したり、ページ内でアクションがされた場合に維持がされる。そのためデフォルトでは30分間何もしない場合はセッションが一回切れて、別のセッションとして扱われる。

GAのセッション維持の条件は何かしらのアクションなのでページ繊維以外にもイベント発火が認められれば継続される。

なお、30分という値は変えられる

f:id:shinkufencer:20200909002724p:plain

日をまたぐ

ユーザー A が 8 月 14 日の午後 11 時 50 分にウェブサイトにアクセスし、15 日の午前 0 時 10 分に離脱したとします。この場合は、8 月 14 日の午後 11 時 59 分 59 秒に最初のセッションが終了し、15 日の 午前 0 時に次のセッションが開始されます。1 日の終わりは、ビューのタイムゾーン設定を基準とします。 - アナリティクスでのウェブ セッションの算出方法 - アナリティクス ヘルプ

上記にあるように、アナリティクスのビューに設定たされたタイムゾーン準拠で、23:59を超えると、次のタイミングから別セッション扱いとなる。

参照サイトが変わる

別のドメインのサイトに一回遷移して戻ってくると別のセッションとして扱われる。ただし会員基盤が別のドメインのサイトの場合などは同一セッションとみなしたいシーンが出てくるので、そのような場合は除外設定ができる

参照:参照を除外する - アナリティクス ヘルプ

キャンペーンタグのクエリストリングが設定されたURLクリック

utm_source などutmから始まるクエリストリングのパラメータをつけたURLで遷移をすると、同一のサイト内の回遊だとしても別セッションとして開始される。

基本カスタムキャンペーン自体が、外部流入の調査を目的としたパラメータ値のため、このような仕様なのだと推察される

カスタム URL でキャンペーン データを収集する - アナリティクス ヘルプ

Google広告の自動タグが設定された広告をクリックしてきた場合

これもキャンペーンデータ収集用のクエリストリングと似た概念で、自動タグで設定される gclid というクエリストリングが付与され、この値に変化があると別セッションとみなされる

参考サイト

meta data とは何かざっくりまとめる

小ネタ

metaとは

言葉の意味としては以下の説明が一番しっくり来る

他の語の上に付いて複合語を作り、超越した、高次の、の意を表す。「メタ言語」「メタメッセージ」 - meta(メタ)の意味 - goo国語辞書

metaなdataとは

このmetaがついたdataは以下の意味を持つ

メタなデータ、すなわちデータについてのデータという意味で、あるデータが付随して持つそのデータ自身についての付加的なデータを指す。

元となるデータを説明するデータ、のような表しかたをする。

もともとは図書館の蔵書目録で使われ始めた用語という話があり、本というデータを探すためのデータ、というような立ち位置だった様子

metadataの代表例

  • 写真のExif情報
  • PCのファイルのファイル作成日や作成情報
  • 音楽ファイルの曲名やアーティスト情報

関連リンク

Levelの意味をテレビゲームでの使われ方から理解する

RPG由来のレベル、が浸透してしまっているので整理する。

言葉の本来の意味

a horizontal plane or line with respect to the distance above or below a given point. - level mean - Google 検索

和訳すると以下のようになる。

特定のポイントの上下の距離を基準にした水平面または線。

ゲームにおけるレベル

英語の本来の意味で「基準線」という意味合いがあるため、最初はその意味で使われることが主だった。

ゲームにおいても本来はその意味で使われており、難易度がどんどん上がる要素などを示すものであり、英語版のwikipediaには以下のように書かれている。

A level, map, area, stage, world, track, board, floor, zone, phase, mission, episode, or course in a video game is the total space available to the player during the course of completing a discrete objective. Video game levels generally have progressively increasing difficulty to appeal to players with different skill levels. - Level (video games) - Wikipedia)

和訳すると以下の内容

ビデオゲームのレベル、マップ、エリア、ステージ、ワールド、トラック、ボード、フロア、ゾーン、フェーズ、ミッション、エピソード、またはコースは、個別の目標を達成する過程でプレーヤーが利用できる総スペースです。ビデオゲームのレベルは、一般に、難易度が次第に高まり、さまざまなスキルレベルのプレイヤーにアピールすることができます。

英語圏ではレベルは、ステージやワールドと同列として語られており、日本語圏ではアクションゲームのステージと同じ意味で捉えるとイメージとしては近い

RPGのレベルとの混同

昨今、レベルというカタカナ後はドラゴンクエストの流行から続くゲーム用語の浸透、直近だとなろう系小説の隆盛も手伝って、RPGに由来するレベルが主たる意味となっている。

RPGのレベルは本来のlevelとは異なり、以下のように表される

レベル(level, 略:Lv)とは、ロールプレイングゲームなどにおいて、キャラクターやユニットの強さの段階を表す数値である。 - レベル (ロールプレイングゲーム) - Wikipedia

このようにlevelという言葉は文脈によって(かつゲームという土台の話においても)違う意味を持つようになってしまっている。

「レベル」デザインはどういう意味なのか

ゲーム開発には「レベルデザイン」という言葉がある。この言葉はからあるステージの意味合いが正しく、そのゲームのワールドのデザインなどを示す。

例えばアクションゲームであれば、障害物や敵の配置、全体的な空間の構造をデザインすることなどがレベルデザインとなる。

混同しやすいレベルデザイン

RPGのレベルとステージを作り上げることが混ざり合って意味が「難易度調整をすることがレベルデザイン」のように捉えられてしまっているが、様々な方々から「それは違う」と異口同音で語られている。

関連リンク