3

おはようございます。Google アナリティクス API でこの動作を見たことがありますが、SQL 担当者としては奇妙に感じます。adContent のすべての値のリストを取得したいので、and をクエリga:adContentします (理由は明確に定義されていませんが、メトリックも選択する必要があるため) ga:organicSearches。同じグループ (キャンペーン) にあるため、サーバー上でパフォーマンスが向上する可能性があります。

adContent は "(not set)"、organicSearches は 516,674 です。あ、adContent は使われてないのかな。しかし、マーケティング部門はそうであると断言し、説得力のあるスクリーン ショットを作成します。

後で、任意にメトリックを に変更しますga:transactions。私が目覚めた宇宙では、その列に返される実際の値を除いて、これは何にも影響を与えないはずです. 代わりに、 のもっともらしい値を持つ無数の行を取得しますga:adContent。の値ga:transactionsはゼロの場合があるため、GA が「メトリック > 0」をフィルタリングしていたわけではありません。

私のクエリにはフィルターがありません。これら 2 つのバリアントの間で日付範囲を変更しませんでした。誰が何が起こっているのか教えてもらえますか? 上記のクエリは次のように変換されると予想されます。これは、まったく同じ数の行を返す必要があります。

SELECT adContent, SUM(organicSearches)
FROM Campaign
WHERE Date BETWEEN X AND Y
GROUP BY adContent

SELECT adContent, SUM(transactions)
FROM Campaign INNER JOIN ECommerce ON <something>
WHERE Date BETWEEN X AND Y
GROUP BY adContent

GA はおそらくバックエンドで通常の RDMS を使用していないことを認識していますが、1 + 1 はどのデータベースでも 2 に等しいことは確かです!

4

1 に答える 1

3

定義上、 (エッジケースは別ga:organicSearchesとして)に一致することはほとんどありません。は広告のコンテンツ用で、はセッション内のオーガニック検索結果の訪問用です (同じセッション内で Google を複数回使用して、サイトで特定の何かを見つけようとした場合など)。その特定の現象を測定しようとする以外の目的で使用しないでください。ga:adContentga:adContentga:organicSearches

ここでは SQL マインドフレームを使用しないようにしてください。Google アナリティクスはバックエンドで SQL を使用しないため、従来の関係についての概念は当てはまりません。IIRC では、NoSQL タイプのデータベースであるBigTable バリアントなど、いくつかのものを使用しています。

2006 年の BigTable に関する Google ペーパーから:

Google アナリティクスで使用される 2 つのテーブルについて簡単に説明します。生のクリック テーブル (~200 TB) は、各エンドユーザー セッションの行を維持します。行名は、Web サイトの名前とセッションが作成された時刻を含むタプルです。このスキーマは、同じ Web サイトを訪問するセッションが連続していること、およびセッションが時系列でソートされることを保証します。このテーブルは元のサイズの 14% に圧縮されます。サマリー テーブル ( ~20 TB) には、各 Web サイトのさまざまな事前定義されたサマリーが含まれています。このテーブルは、定期的にスケジュールされた MapReduce ジョブによって生のクリック テーブルから生成されます。各 MapReduce ジョブは、生のクリック テーブルから最近のセッション データを抽出します。システム全体のスループットは、GFS のスループットによって制限されます。このテーブルは元のサイズの 29% に圧縮されます。

すべてのディメンションのリストのメトリックの最小公分母が必要な場合は、 を使用しますga:pageviews

于 2011-02-16T17:00:29.733 に答える