Pakadali pano, pafupifupi kampani iliyonse padziko lapansi imasonkhanitsa ziwerengero za ogwiritsa ntchito pa intaneti. Zolimbikitsa zikuwonekeratu - makampani amafuna kudziwa momwe malonda / tsamba lawo limagwiritsidwira ntchito komanso kumvetsetsa bwino ogwiritsa ntchito. Inde, pali zida zambiri pamsika kuti zithetse vutoli - kuchokera ku machitidwe a analytics omwe amapereka deta mu mawonekedwe a dashboards ndi ma graph (mwachitsanzo.
Koma tapeza vuto lomwe silinathebe. Chomwecho chinabadwa
Nβchifukwa chiyani tiyenera kukulitsa utumiki wathu?
Zinali zaka za makumi asanu ndi anayi, tinapulumuka momwe tingathere. 2019, tinapanga API First Customer Data Platform kSense, zomwe zinapangitsa kuti zitheke kusonkhanitsa deta kuchokera kumagwero osiyanasiyana (zotsatsa za Facebook, Stripe, Salesforce, Google play, Google Analytics, ndi zina zotero) kuti muthe kusanthula deta mosavuta, kuzindikira kudalira, ndi zina zotero. Tawona kuti ogwiritsa ntchito ambiri amagwiritsa ntchito nsanja yathu pakusanthula deta makamaka Google Analytics (yotsatira pano GA). Tidalankhula ndi ogwiritsa ntchito ena ndipo tidapeza kuti amafunikira data ya analytics yazinthu zawo zomwe amalandila pogwiritsa ntchito GA, koma
Adayika ma pixel a Segment javascript pa tsamba lawo lawebusayiti ndipo zambiri zokhudzana ndi machitidwe a ogwiritsa ntchito zidakwezedwa munkhokwe yomwe yatchulidwa (mwachitsanzo Postgres). Koma Gawo lilinso ndi zovuta zake - mtengo. Mwachitsanzo, ngati tsamba lawebusayiti lili ndi 90,000 MTU (otsatira omwe amatsatiridwa pamwezi), ndiye kuti muyenera kulipira ~ 1,000 $ pamwezi kwa wosunga ndalama. Panalinso vuto lachitatu - zowonjezera msakatuli (monga AdBlock) zaletsa kusonkhanitsa kwa analytics chifukwa ... Zopempha za http kuchokera kwa osatsegula zidatumizidwa kumadera a GA ndi Segment. Kutengera zofuna za makasitomala athu, tapanga ntchito yowunikira yomwe imasonkhanitsa deta yonse (popanda sampuli), ndi yaulere ndipo imatha kugwira ntchito zathu zokha.
Momwe ntchitoyo imagwirira ntchito
Ntchitoyi ili ndi magawo atatu: pixel ya javascript (yomwe tidalembanso m'malembedwe), gawo la seva likugwiritsidwa ntchito muchilankhulo cha GO, ndipo idakonzedwa kuti igwiritse ntchito Redshift ndi BigQuery ngati nkhokwe yamkati (kenako adawonjezera thandizo la Postgres, ClickHouse ndi Snowflake).
Zinasankhidwa kusiya mapangidwe a GA ndi Segment zochitika zosasinthika. Zomwe zimafunikira ndikubwereza zochitika zonse kuchokera pa intaneti pomwe pixel imayikidwa kumbuyo kwathu. Monga momwe zikukhalira, izi sizovuta kuchita. Pixel ya Javascript idatsitsa njira yoyambirira ya library ya GA ndi yatsopano, yomwe idabwereza zomwe zidachitika m'dongosolo lathu.
//'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);
});
});
}
Ndi pixel ya Gawo chilichonse ndi chosavuta; ili ndi njira zapakati, imodzi yomwe tidagwiritsa ntchito.
//'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.');
}
Kuphatikiza pa kukopera zochitika, tawonjezeranso kuthekera kotumiza json mosasamala:
//ΠΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ 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'
});
Kenako, tiyeni tikambirane za gawo la seva. The backend ayenera kuvomereza zopempha http, kuwadzaza ndi zina zambiri, mwachitsanzo, geo data (zikomo
//Π²Ρ
ΠΎΠ΄ΡΡΠΈΠΉ 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"
}
Komabe, ma arrays pakadali pano amangosinthidwa kukhala zingwe chifukwa Sikuti nkhokwe zonse zaubale zimathandizira magawo obwerezabwereza. Ndikothekanso kusintha mayina am'munda kapena kuwachotsa pogwiritsa ntchito malamulo opangira mapu. Amakulolani kuti musinthe schema ya data ngati kuli kofunikira kapena kusintha mtundu wina wa data kukhala wina. Mwachitsanzo, ngati gawo la json lili ndi chingwe chokhala ndi nthawi (field_3_sub_field_1_sub_sub_field_1 kuchokera ku chitsanzo pamwambapa), ndiye kuti mupange gawo mu nkhokwe ndi mtundu wa stamp yanthawi, muyenera kulemba lamulo la mapu pakukonza. Mwa kuyankhula kwina, mtundu wa deta wamunda umatsimikiziridwa poyamba ndi mtengo wa json, ndiyeno lamulo loponyera mtundu (ngati litakonzedwa) likugwiritsidwa ntchito. Tazindikira mitundu 4 ya data: STRING, FLOAT64, INT64 ndi TIMESTAMP. Malamulo opangira mapu ndi mitundu amawoneka motere:
rules:
- "/field_1/subfield_1 -> " #ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»Ρ
- "/field_2/subfield_1 -> /field_10/subfield_1" #ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎΠ»Ρ
- "/field_3/subfield_1/subsubfield_1 -> (timestamp) /field_20" #ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎΠ»Ρ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠ°
Algorithm yodziwira mtundu wa data:
- sinthani json structure kukhala yosalala
- kudziwa mtundu wa data wa minda ndi ma values
- kugwiritsa ntchito mapu ndi kulemba malamulo opangira
Kenako kuchokera pamapangidwe a json omwe akubwera:
{
"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"
}
}
schema ya data idzapezedwa:
"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
Tidaganizanso kuti wogwiritsa ntchito azitha kugawa magawo kapena kugawa zidziwitso mu nkhokwe molingana ndi njira zina ndikukhazikitsa luso loyika dzina la tebulo nthawi zonse kapena
tableName: '{{.product_type}}_{{._timestamp.Format "2006_01"}}'
Komabe, mapangidwe a zochitika zomwe zikubwera zimatha kusintha panthawi yothamanga. Takhazikitsa algorithm kuti tiwone kusiyana pakati pa kapangidwe ka tebulo lomwe lilipo ndi kapangidwe ka chochitika chomwe chikubwera. Ngati kusiyana kukupezeka, tebulo lidzasinthidwa ndi magawo atsopano. Kuti muchite izi, gwiritsani ntchito chigamba cha SQL funso:
#ΠΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ Postgres
ALTER TABLE "schema"."table" ADD COLUMN new_column character varying
zomangamanga
Chifukwa chiyani muyenera kulemba zochitika ku fayilo yamafayilo, osati kungolemba mwachindunji ku database? Ma database samachita bwino nthawi zonse pochita ndi zoyika zambiri (
Open Source ndi mapulani amtsogolo
Panthawi ina, ntchitoyi inayamba kuwoneka ngati chinthu chokwanira ndipo tinaganiza zomasula ku Open Source. Pakadali pano, kuphatikiza ndi Postgres, ClickHouse, BigQuery, Redshift, S3, Snowflake yakhazikitsidwa. Zophatikizira zonse zimathandizira mitundu yonse ya batch ndi kutsitsa ndikutsitsa deta. Thandizo lowonjezera pazofunsira kudzera pa API.
Chiwembu chophatikiza chamakono chikuwoneka motere:
Ngakhale ntchitoyo ingagwiritsidwe ntchito paokha (mwachitsanzo kugwiritsa ntchito Docker), tilinso nayo
β
β
β
Tidzakhala okondwa ngati EventNative ikuthandizani kuthetsa mavuto anu!
Ogwiritsa ntchito olembetsedwa okha ndi omwe angatenge nawo gawo pa kafukufukuyu.
Ndi ndondomeko yanji yotolera ziwerengero yomwe imagwiritsidwa ntchito pakampani yanu?
-
48,0%Google Analytics12
-
4,0%Gawo 1
-
16,0%Wina (lembani mu ndemanga)4
-
32,0%Yambani ntchito yanu8
Ogwiritsa 25 adavota. Ogwiritsa ntchito 6 adakana.
Source: www.habr.com