BigQuery GA4のクエリ開発時におけるクエリコストを減らすために、サンプリングテーブルを作成する方法のクエリなどのデータを記載します。 作成手順の詳細については、
- SEM Technologyのブログ記事
- SEM TechnologyのYoutube動画
をご覧ください。
| #!/usr/bin/env python3 | |
| """ | |
| BigQuery Schema Retriever | |
| BigQueryのテーブルスキーマ(列定義)を取得し、各列のサンプル値も含めてJSON形式で出力するプログラム。 | |
| ネストされたフィールド(STRUCT型)にも対応。 | |
| 取得したJSONファイルを、生成AIのコンテストとして活用すれば、クエリ実装の精度が上がるはず(どの列にどのような値が入っているのかを、正しく理解することができため)。 | |
| """ |
BigQuery GA4のクエリ開発時におけるクエリコストを減らすために、サンプリングテーブルを作成する方法のクエリなどのデータを記載します。 作成手順の詳細については、
をご覧ください。
| -- プロジェクト名、データセット名は自身のものに置き換えること。 | |
| SELECT | |
| * | |
| FROM | |
| `プロジェクト名.データセット名.events_20210201` | |
| WHERE | |
| TRUE | |
| AND MOD(ABS(FARM_FINGERPRINT(user_pseudo_id)), 10) = 0 |
| function () { | |
| var element = {{gtm.element}}; | |
| while (!element.hasAttribute('data-no')) { | |
| element = element.parentElement; | |
| } | |
| return element.getAttribute('data-no'); | |
| } |
| <script type="text/javascript"> | |
| var dataLayer = dataLayer || []; | |
| dataLayer.push({ | |
| 'site_type':'d', | |
| 'page_type' : 'TOPページ', | |
| 'customer': { | |
| 'id': 'C12345', | |
| 'hashed_email': '1234abcd' | |
| }, | |
| 'product': { // 商品詳細ページでなければこのプロパティは空 |
| /** | |
| 使い方: | |
| 1. 最初にexport()を実行してキャンペーン/広告グループのデータをスプレッドシートに書き出します。 | |
| 書き出すスプレッドシートは、下記のsheetIDで設定したIDのスプレッドシートとなります。 | |
| 2. export()を実行したあとに、スプレッドシートにキャンペーン/広告グループのデータが出力された | |
| ことを確認します。 | |
| 3. 出力されたキャンペーン/広告グループのデータを書き換えます。このとき、ID列を変更しないように | |
| してください(この値で既存のデータとマッチングさせます)。 | |
| 4. もう一度スクリプトを実行します。このとき、exportの行はコメントアウトし、importの行のコメント |
| function main () { | |
| // Name = '除外プレースメント名' の「除外プレースメント名」はアカウントに合わせて変更 | |
| var excludedPlacementList = AdWordsApp.excludedPlacementLists().withCondition("Name = '除外プレースメント'").get().next(); | |
| var placements = []; | |
| // Where/Duringで指定している条件は抽出したいものに変更する。下記は、「過去30日間でクリック11以上、CTR 1.00%以上」のプレースメントを抽出している | |
| var rows = AdWordsApp.report("SELECT Criteria, Clicks, Cost, Ctr FROM PLACEMENT_PERFORMANCE_REPORT Where Clicks > 10 AND Ctr > 0.01 During LAST_30_DAYS").rows(); | |
| while (rows.hasNext()) { | |
| var row = rows.next(); | |
| placements.push(row['Criteria']); | |
| } |
| <script> | |
| ;(function ($) { | |
| window.dataLayer = window.dataLayer || []; | |
| $(function () { | |
| var each_slice = function(arr, num, fn) { | |
| if(fn === undefined) fn = function(){}; | |
| for(var i=0,l=arr.length,count=0,slice=[],ret=[]; i<l; i++) { | |
| if(count >= num) { | |
| fn.apply(slice); | |
| ret.push(slice); |
| namespace :unicorn do | |
| ## | |
| # Tasks | |
| desc "Start unicorn" | |
| task(:start) { | |
| config = rails_root + "config/unicorn.rb" | |
| env = ENV['RAILS_ENV'] || "development" | |
| sh "bundle exec unicorn_rails -D -c #{config} -E #{env}" |
| #install rbenv | |
| cd /usr/local | |
| git clone git://github.com/sstephenson/rbenv.git rbenv | |
| groupadd rbenv | |
| chgrp -R rbenv rbenv | |
| chmod -R g+rwxXs rbenv | |
| #install rbenv-build |