Skip to content

Instantly share code, notes, and snippets.

BigQuery GA4のクエリ開発時におけるクエリコストを減らすために、サンプリングテーブルを作成する方法のクエリなどのデータを記載します。 作成手順の詳細については、

  • SEM Technologyのブログ記事
  • SEM TechnologyのYoutube動画

をご覧ください。

@1987yama3
1987yama3 / サンプリングしたデータを取得するクエリ.sql
Created February 5, 2021 04:21
BigQueryのGA4データをサンプリングしたテーブルを生成する
-- プロジェクト名、データセット名は自身のものに置き換えること。
SELECT
*
FROM
`プロジェクト名.データセット名.events_20210201`
WHERE
TRUE
AND MOD(ABS(FARM_FINGERPRINT(user_pseudo_id)), 10) = 0
@1987yama3
1987yama3 / gist:8e363e29ef35b691c931f0d63b97b6e5
Created May 31, 2017 03:12
属性を持つ要素まで遡る
function () {
var element = {{gtm.element}};
while (!element.hasAttribute('data-no')) {
element = element.parentElement;
}
return element.getAttribute('data-no');
}
@1987yama3
1987yama3 / datalayer.html
Last active March 22, 2017 08:49
E-Commerce DataLayer
<script type="text/javascript">
var dataLayer = dataLayer || [];
dataLayer.push({
'site_type':'d',
'page_type' : 'TOPページ',
'customer': {
'id': 'C12345',
'hashed_email': '1234abcd'
},
'product': { // 商品詳細ページでなければこのプロパティは空
@1987yama3
1987yama3 / AdWordsApp.js
Created July 4, 2016 08:05
キャンペーン/広告グループの名前を一括更新するスクリプト
/**
使い方:
1. 最初にexport()を実行してキャンペーン/広告グループのデータをスプレッドシートに書き出します。
書き出すスプレッドシートは、下記のsheetIDで設定したIDのスプレッドシートとなります。
2. export()を実行したあとに、スプレッドシートにキャンペーン/広告グループのデータが出力された
ことを確認します。
3. 出力されたキャンペーン/広告グループのデータを書き換えます。このとき、ID列を変更しないように
してください(この値で既存のデータとマッチングさせます)。
4. もう一度スクリプトを実行します。このとき、exportの行はコメントアウトし、importの行のコメント
@1987yama3
1987yama3 / 除外プレースメント追加.js
Last active June 16, 2016 23:41
除外プレースメントに追加するスクリプト
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']);
}
@1987yama3
1987yama3 / ecommerce-tagmanager.html
Last active December 10, 2021 06:25
拡張Eコマースを実装するときのベストプラクティス(トラッキングコード実装)
<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);
@1987yama3
1987yama3 / Rakefile.tmp
Last active August 29, 2015 13:59
unicornの導入
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}"
@1987yama3
1987yama3 / rails-setup.sh
Last active August 29, 2015 13:59
Ruby on Railsのセットアップ
#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
@1987yama3
1987yama3 / centos-setup.sh
Created April 14, 2014 12:39
CentOSの基本セットアップ
yum -y install ntp
chkconfig ntpd on
/etc/init.d/ntpd start
#install package
yum -y --enablerepo=remi,epel install libyaml libyaml-devel zlib zlib-devel readline readline-devel openssl openssl-devel libxml2 libxml2-devel libxslt libxslt-devel gcc gcc-c++ make git wget subversion mysql mysql-server mysql-devel
chkconfig mysqld on
/etc/rc.d/init.d/mysqld start