แแแแแแแ, แแกแแคแแแแก แแแแฅแแแก แงแแแแ แแแแแแแแ แแแ แแแแแก แกแขแแขแแกแขแแแแก แแแแฎแแแ แแแแแก แฅแแแแแแแแแก แจแแกแแฎแแ แแแ แ แแกแฃแ แกแแ. แแแขแแแแชแแ แแแแแแแ โ แแแแแแแแแแก แกแฃแ แ แแชแแแแแ, แ แแแแ แแแแแแงแแแแแ แแแแ แแ แแแฃแฅแขแ/แกแแแขแ แแ แฃแแแ แแแแแแ แแแแ แแแแฎแแแ แแแแแแ. แ แ แแฅแแ แฃแแแ, แแ แแ แแแแแแแก แแแแแกแแญแ แแแแ แแแแแ แแ แแ แกแแแแแก แฃแแแ แแแ แแแกแขแ แฃแแแแขแ - แแแแแแขแแแฃแ แ แกแแกแขแแแแแแแแ, แ แแแแแแแช แฃแแ แฃแแแแแงแแคแแ แแแแแชแแแแแก แแแคแแก แแ แแ แแคแแแแแแก แกแแฎแแ (แแแแแแแแแ,
แแแแ แแ แฉแแแ แแฆแแแแแฉแแแแ แแ แแแแแแ, แ แแแแแแช แฏแแ แแ แแ แแก แแแแแแ แแแฃแแ. แแกแ แแแแแแแ
แ แแขแแ แฃแแแ แแแแแแแแแแ แแ แฉแแแแ แกแแแฃแแแ แ แกแแ แแแกแ?
แแแฎแแแชแแแแแแแแ แฌแแแแ แแงแ, แ แแแแ แช แจแแแแแซแแ, แแแแแแ แฉแแ. 2019 แฌแแแก แฉแแแ แจแแแแแฃแจแแแแ API แแแ แแแแ แแแแแแขแแแแก แแแแแชแแแแ แแแแขแคแแ แแ kSense, แ แแแแช แจแแกแแซแแแแแแ แแแฎแแแ แแแแแชแแแแแแก แแแ แแแแชแแ แกแฎแแแแแกแฎแแ แฌแงแแ แแแแ (Facebook ads, Stripe, Salesforce, Google play, Google Analytics แแ แ.แจ.) แแแแแชแแแแ แฃแคแ แ แแแกแแฎแแ แฎแแแแแ แแแแแแแแกแแแแก, แแแแแแแแแแฃแแแแแแแก แแแแแขแแคแแชแแ แแแแกแแแแก แแ แ.แจ. แฉแแแ แจแแแแแฉแแแแ, แ แแ แแแแ แ แแแแฎแแแ แแแแแ แแงแแแแแก แฉแแแแก แแแแขแคแแ แแแก แแแแแชแแแแ แแแแแแแแกแแแแก, แแแแแ แแขแฃแแแ Google Analytics (แจแแแแแแแจแ GA). แฉแแแ แแแกแแฃแแ แแ แแแแแแ แ แแแแฎแแแ แแแแแก แแ แแแแแ แแแแแ, แ แแ แแแ แกแญแแ แแแแแ แแแแแแขแแแฃแ แ แแแแแชแแแแแ แแแแ แแ แแแฃแฅแขแแกแแแแก, แ แแแแแกแแช แแกแแแ แแฆแแแแ GA-แก แแแแแงแแแแแแ, แแแแ แแ
แแแ แแแแแแแ แแแ แ แแกแฃแ แกแแ แแแแแแกแขแแแแ แแก Segment javascript pixel แแ แแแแแชแแแแแ แแแแ แแแแฎแแแ แแแแแแแก แฅแชแแแแก แจแแกแแฎแแ แฉแแแขแแแ แแ แแแแแแแแฃแ แแแแแชแแแแ แแแแแจแ (แแแแแแแแแ, Postgres). แแแแ แแ แกแแแแแแขแก แแกแแแ แแฅแแก แแแแแกแ แฃแแ แงแแคแแแ แแฎแแ แ - แคแแกแ. แแแแแแแแแ, แแฃ แแแ แ แแกแฃแ แกแก แแฅแแก 90,000 MTU (แแแแฃแ แ แแแแแแแแแแก แแแแฎแแแ แแแแแ), แแแจแแ แแฅแแแ แฃแแแ แแแแแแฎแแแแ ~ 1,000 $ แแแแจแ แแแแแ แแก. แแงแ แแแกแแแ แแ แแแแแแแช - แแ แแฃแแแ แแก แแแแแแ แแแ แแแคแแ แแแแแแ (แ แแแแ แแชแแ AdBlock) แแแแแแแ แแแแแแขแแแแก แแแแแฅแชแแ, แ แแแแแ... http แแแแฎแแแแแแ แแ แแฃแแแ แแแแ แแแแแแแแแ GA แแ Segment แแแแแแแแก. แฉแแแแ แแแแแแขแแแแก แกแฃแ แแแแแแแแแ แแแแแแแแแแ แ, แฉแแแ แจแแแฅแแแแแ แแแแแแขแแแฃแ แ แกแแ แแแกแ, แ แแแแแแช แแแ แแแแแก แแแแแชแแแแ แกแ แฃแ แแแแแแแฅแขแก (แแแแฃแจแแแแก แแฆแแแแก แแแ แแจแ), แฃแคแแกแแ แแ แจแแฃแซแแแ แแแฃแจแแแก แกแแแฃแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแแ.
แ แแแแ แแฃแจแแแแก แกแแ แแแกแ
แกแแ แแแกแ แจแแแแแแ แกแแแ แแแฌแแแแกแแแ: javascript แแแฅแกแแแ (แ แแแแแแช แฉแแแ แแแแแแแแแแแ แแแแแแฌแแ แแ แกแแแแญแแ แกแแ แแแขแแ), แกแแ แแแ แแก แแแฌแแแ แแแแแ แแแแแ GO แแแแแ แแ แแแแแแแแแ แแงแ Redshift-แแกแ แแ BigQuery-แแก แแแแแงแแแแแ แจแแแ แแแแแชแแแแ แแแแแ (แแแแแแแแแแแ แแแ แแแแแแขแแก แแฎแแ แแแญแแ แ Postgres, ClickHouse แแ Snowflake).
แแแแแฌแงแแ GA แแ แกแแแแแแขแแก แแแแแแแแแแก แกแขแ แฃแฅแขแฃแ แ แฃแชแแแแแแ แแแ แฉแแแแแแงแ. แงแแแแแคแแ แ แ แแช แแงแ แกแแญแแ แ แแงแ แงแแแแ แแแแแแแแก แแฃแแแแ แแแ แแแ แ แแกแฃแ แกแแแแ, แกแแแแช แแแฅแกแแแ แแ แแก แแแแแกแขแแแแ แแแฃแแ แฉแแแแก แคแแแแ. แ แแแแ แช แแ แแแแแ, แแแแก แแแแแแแแ แ แแฃแแ แแ แแ แแก. Javascript-แแก แแแฅแกแแแแ แแแแแแคแแ แ แแ แแแแแแแฃแ แ GA แแแแแแแแแแแก แแแแแแ แแฎแแแ, แ แแแแช แแแแแแฌแแแ แแแแแแแ แฉแแแแก แกแแกแขแแแแจแ.
//'ga' - ััะฐะฝะดะฐััะฝะพะต ะฝะฐะทะฒะฐะฝะธะต ะฟะตัะตะผะตะฝะฝะพะน Google Analytics
if (window.ga) {
ga(tracker => {
var originalSendHitTask = tracker.get('sendHitTask');
tracker.set('sendHitTask', (model) => {
var payLoad = model.get('hitPayload');
//ะพัะฟัะฐะฒะบะฐ ะพัะธะณะธะฝะฐะปัะฝะพะณะพ ัะพะฑััะธั ะฒ GA
originalSendHitTask(model);
let jsonPayload = this.parseQuery(payLoad);
//ะพัะฟัะฐะฒะบะฐ ัะพะฑััะธั ะฒ ะฝะฐั ัะตัะฒะธั
this.send3p('ga', jsonPayload);
});
});
}
Segment pixel-แแ แงแแแแแคแแ แ แฃแคแ แ แแแ แขแแแแ; แแแก แแฅแแก แจแฃแแแ แแแ แแแแก แแแแแแแแ, แ แแแแแแแแแ แแ แ-แแ แแ แฉแแแ แแแแแแแงแแแแ.
//'analytics' - ััะฐะฝะดะฐััะฝะพะต ะฝะฐะทะฒะฐะฝะธะต ะฟะตัะตะผะตะฝะฝะพะน Segment
if (window.analytics) {
if (window.analytics.addSourceMiddleware) {
window.analytics.addSourceMiddleware(chain => {
try {
//ะดัะฑะปะธัะพะฒะฐะฝะธะต ัะพะฑััะธั ะฒ ะฝะฐั ัะตัะฒะธั
this.send3p('ajs', chain.payload);
} catch (e) {
LOG.warn('Failed to send an event', e)
}
//ะพัะฟัะฐะฒะบะฐ ะพัะธะณะธะฝะฐะปัะฝะพะณะพ ัะพะฑััะธั ะฒ Segment
chain.next(chain.payload);
});
} else {
LOG.warn("Invalid interceptor state. Analytics js initialized, but not completely");
}
} else {
LOG.warn('Analytics.js listener is not set.');
}
แแแแแแแแแแก แแแแแ แแแแก แแแ แแ, แฉแแแ แแแแแแแขแแ แแแแแแแแฃแ แ json-แแก แแแแแแแแแก แจแแกแแซแแแแแแแ:
//ะัะฟัะฐะฒะบะฐ ัะพะฑััะธะน ั ะฟัะพะธะทะฒะพะปัะฝัะผ json ะพะฑัะตะบัะพะผ
eventN.track('product_page_view', {
product_id: '1e48fb70-ef12-4ea9-ab10-fd0b910c49ce',
product_price: 399.99,
price_currency: 'USD'
product_release_start: '2020-09-25T12:38:27.763000Z'
});
แจแแแแแแ, แแแแแ แแแกแแฃแแ แแ แกแแ แแแ แแก แแแฌแแแแ. Backend-แแ แฃแแแ แแแแฆแแก http แแแแฎแแแแแแ, แจแแแแกแแก แแกแแแ แแแแแขแแแแแ แแแคแแ แแแชแแแ, แแแแแแแแแ, แแแ แแแแแชแแแแแ (แแแแแแแ
//ะฒั
ะพะดััะธะน json
{
"field_1": {
"sub_field_1": "text1",
"sub_field_2": 100
},
"field_2": "text2",
"field_3": {
"sub_field_1": {
"sub_sub_field_1": "2020-09-25T12:38:27.763000Z"
}
}
}
//ัะตะทัะปััะฐั
{
"field_1_sub_field_1": "text1",
"field_1_sub_field_2": 100,
"field_2": "text2",
"field_3_sub_field_1_sub_sub_field_1": "2020-09-25T12:38:27.763000Z"
}
แแฃแแชแ, แแแกแแแแแ แแแแแแแ แฃแแ แแแแ แแแ แแแแฅแแแแแ แกแขแ แแฅแแแแแแ, แ แแแแแ แงแแแแ แ แแแแชแแฃแ แ แแแแแชแแแแ แแแแ แแ แฃแญแแ แก แแฎแแ แก แแแแแแแ แแแแ แแแแแแก. แแกแแแ แจแแกแแซแแแแแแแ แแแแแแแก แกแแฎแแแแแแก แจแแชแแแ แแ แแแแ แฌแแจแแ แแ แฉแแแแแ แ แฃแแแแแก แฌแแกแแแแก แแแแแงแแแแแแ. แแกแแแ แกแแจแฃแแแแแแก แแแซแแแแ แจแแชแแแแแ แแแแแชแแแแ แกแฅแแแ แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ แแ แแแแแแงแแแแแ แแ แแ แแแแแชแแแแ แขแแแ แแแแ แแแ. แแแแแแแแแ, แแฃ json แแแแ แจแแแชแแแก แกแขแ แแฅแแแก แแ แแแก แแแจแแฃแแแ (field_3_sub_field_1_sub_sub_field_1 แแแแแ แแแงแแแแแแ แแแแแแแแแแแ), แจแแแแแ แแแแแชแแแแ แแแแแจแ แแ แแแก แจแขแแแแแก แขแแแแก แแแแแก แจแแกแแฅแแแแแแ, แแแแคแแแฃแ แแชแแแจแ แฃแแแ แฉแแฌแแ แแ แ แฃแแแแแก แฌแแกแ. แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แแแแแก แแแแแชแแแแ แขแแแ แแแแแกแแแฆแแ แแแ แฏแแ json แแแแจแแแแแแแแ, แจแแแแแ แแ แแแแแแงแแแแแ แขแแแแก แฉแแแแกแฎแแแก แฌแแกแ (แแฃ แแแแคแแแฃแ แแ แแแฃแแแ). แฉแแแ แแแแแแแแแแแแ แแแแแชแแแแ 4 แซแแ แแแแแ แขแแแ: STRING, FLOAT64, INT64 แแ TIMESTAMP. แ แฃแแแแแก แแ แขแแแแแแก แฉแแแแกแฎแแแก แฌแแกแแแ แแกแ แแแแแแงแฃแ แแแ:
rules:
- "/field_1/subfield_1 -> " #ะฟัะฐะฒะธะปะพ ัะดะฐะปะตะฝะธั ะฟะพะปั
- "/field_2/subfield_1 -> /field_10/subfield_1" #ะฟัะฐะฒะธะปะพ ะฟะตัะตะฝะพัะฐ ะฟะพะปั
- "/field_3/subfield_1/subsubfield_1 -> (timestamp) /field_20" #ะฟัะฐะฒะธะปะพ ะฟะตัะตะฝะพัะฐ ะฟะพะปั ะธ ะฟัะธะฒะตะดะตะฝะธั ัะธะฟะฐ
แแแแแชแแแแ แขแแแแก แแแแกแแแฆแแ แแก แแแแแ แแแแ:
- json แกแขแ แฃแฅแขแฃแ แแก แแ แขแงแแ แกแขแ แฃแฅแขแฃแ แแ แแแแแฅแชแแแ
- แแแแแแแก แแแแแชแแแแ แขแแแแก แแแแกแแแฆแแ แ แแแแจแแแแแแแแแแ
- แ แฃแแแแแก แแ แขแแแแแแก แฉแแแแกแฎแแแก แฌแแกแแแแก แแแแแงแแแแแ
แจแแแแแ แจแแแแแแแแแ json แกแขแ แฃแฅแขแฃแ แแแแ:
{
"product_id": "1e48fb70-ef12-4ea9-ab10-fd0b910c49ce",
"product_price": 399.99,
"price_currency": "USD",
"product_type": "supplies",
"product_release_start": "2020-09-25T12:38:27.763000Z",
"images": {
"main": "picture1",
"sub": "picture2"
}
}
แแแแแชแแแแ แกแฅแแแ แแแแฆแแแ:
"product_id" character varying,
"product_price" numeric (38,18),
"price_currency" character varying,
"product_type" character varying,
"product_release_start" timestamp,
"images_main" character varying,
"images_sub" character varying
แฉแแแ แแกแแแ แแแคแแฅแ แแ, แ แแ แแแแฎแแแ แแแแแก แฃแแแ แจแแแซแแแก แแแงแแคแแก แแแแคแแแฃแ แแชแแ แแ แแแแแชแแแแ แแแงแแคแ แแแแแชแแแแ แแแแแจแ แกแฎแแ แแ แแขแแ แแฃแแแแแก แแแฎแแแแแ แแ แแแแแแฎแแ แชแแแแแ แชแฎแ แแแแก แกแแฎแแแแก แแแงแแแแแแก แจแแกแแซแแแแแแแ แแฃแแแแแแ แแ
tableName: '{{.product_type}}_{{._timestamp.Format "2006_01"}}'
แแฃแแชแ, แจแแแแแแแแแ แแแแแแแแแแก แกแขแ แฃแฅแขแฃแ แ แจแแแซแแแแ แจแแแชแแแแแก แแแจแแแแแก แแ แแก. แฉแแแ แแแแแแฎแแ แชแแแแแ แแแแแ แแแแ แแ แกแแแฃแแ แชแฎแ แแแแก แกแขแ แฃแฅแขแฃแ แแกแ แแ แจแแแแแแแแแ แแแแแแแแก แกแขแ แฃแฅแขแฃแ แแก แจแแ แแก แกแฎแแแแแแก แจแแกแแแแฌแแแแแแ. แแฃ แแแแกแฎแแแแแแ แแฆแแแฉแแแแแ, แชแฎแ แแแ แแแแแฎแแแแแ แแฎแแแ แแแแแแแ. แแแแกแแแแแก แแแแแแงแแแแ แแแขแฉแ SQL แแแแฎแแแแ:
#ะัะธะผะตั ะดะปั Postgres
ALTER TABLE "schema"."table" ADD COLUMN new_column character varying
แแ แฅแแขแแฅแขแฃแ แ
แ แแขแแ แแญแแ แแแแแ แแแแแแแแแแก แฉแแฌแแ แ แคแแแแฃแ แกแแกแขแแแแจแ แแ แแ แ แแฎแแแแ แแแ แแแ แแแแแ แแแแแชแแแแ แแแแแจแ แฉแแฌแแ แ? แแแแแชแแแแ แแแแแแ แงแแแแแแแแก แแ แแฃแจแแแแก แแแ แแแ, แ แแแแกแแช แกแแฅแแ แแแแฅแแก แฉแแแแ แแแแแก แแแ แ แแแแแแแแแกแแแ (
แฆแแ แฌแงแแ แ แแ แกแแแแแแแแ แแแแแแแ
แ แแฆแแช แแแแแแขแจแ, แกแแ แแแกแแ แแแแฌแงแ แกแ แฃแแคแแกแแแแแ แแ แแแฃแฅแขแแก แกแแฎแ แแ แฉแแแ แแแแแแฌแงแแแขแแ แแแกแ แแแแแจแแแแ แฆแแ แฌแงแแ แแแ. แแแแแแแ แแแแฎแแ แชแแแแแแฃแแแ แแแขแแแ แแชแแ Postgres-แแแ, ClickHouse-แแแ, BigQuery-แแแ, Redshift-แแแ, S3-แแแ, Snowflake-แแแ. แงแแแแ แแแขแแแ แแชแแ แแฎแแ แก แฃแญแแ แก แแแแแชแแแแ แฉแแขแแแ แแแแก แแ แแแ แแ แแแแแแแก แ แแแแแแแก. แแแแแขแแแฃแแแ แแแแฎแแแแแก แแฎแแ แแแญแแ แ API-แแก แกแแจแฃแแแแแแ.
แแแแแแแแ แ แแแขแแแ แแชแแแก แกแฅแแแ แแกแ แแแแแแงแฃแ แแแ:
แแแฃแฎแแแแแแ แแแแกแ, แ แแ แกแแ แแแกแแก แแแแแงแแแแแ แจแแกแแซแแแแแแแ แแแแแฃแแแแแแแแ (แแแแแแแแแ, Docker-แแก แแแแแงแแแแแแ), แฉแแแ แแกแแแ แแแแฅแแก
โ
โ
โ
แแแฎแแ แฃแแ แแแฅแแแแแ, แแฃ EventNative แแแแแฎแแแ แแแแ แแฅแแแแ แแ แแแแแแแแแก แแแแแแ แแแแจแ!
แแแแแแแแฎแแแจแ แแแแแฌแแแแแแ แจแแฃแซแแแแ แแฎแแแแ แแแ แแแแกแขแ แแ แแแฃแ แแแแฎแแแ แแแแแแก.
แ แ แกแขแแขแแกแขแแแแก แจแแแ แแแแแแก แกแแกแขแแแ แแแแแแงแแแแแ แแฅแแแแก แแแแแแแแแจแ?
-
48,0%Google Analytics12
-
4,0%แกแแแแแแขแ 1
-
16,0%แแแแแ แแ แแ (แแแฌแแ แแ แแแแแแขแแ แแแจแ)4
-
32,0%แแแแฎแแ แชแแแแแ แแฅแแแแ แกแแ แแแกแ8
แแแกแชแ แฎแแ 25 แแแแฎแแแ แแแแแแ. 6-แแ แแแแฎแแแ แแแแแแ แแแแ แจแแแแแแ.
แฌแงแแ แ: www.habr.com