Faoi láthair, bailíonn beagnach gach cuideachta ar domhan staitisticí faoi ghníomhartha úsáideoirí ar acmhainn ghréasáin. Tá an spreagadh soiléir - teastaíonn ó chuideachtaí fios a bheith acu conas a úsáidtear a dtáirge/suíomh Gréasáin agus tuiscint níos fearr a fháil ar a n-úsáideoirí. Ar ndóigh, tá líon mór uirlisí ar an margadh chun an fhadhb seo a réiteach - ó chórais anailíse a sholáthraíonn sonraí i bhfoirm dashboards agus graif (mar shampla
Ach fuaireamar fadhb nach bhfuil réitithe fós. Rugadh dá bhrí sin
Cén fáth ar chóir dúinn ár seirbhís féin a fhorbairt?
Na nóchaidí a bhí ann, mhair muid mar ab fhearr a d’fhéadfaimis. 2019, d'fhorbraíomar an Chéad Ardán Sonraí Custaiméara API kSense, rud a d'fhág gur féidir sonraí a chomhiomlánú ó fhoinsí éagsúla (fógraí Facebook, Stripe, Salesforce, Google play, Google Analytics, etc.) le haghaidh anailíse sonraí níos áisiúla, ag aithint spleáchais, etc. Thugamar faoi deara go n-úsáideann go leor úsáideoirí ár n-ardán le haghaidh anailíse sonraí go sonrach Google Analytics (GA anseo feasta). Labhair muid le roinnt úsáideoirí agus fuaireamar amach go dteastaíonn na sonraí anailíse dá dtáirge a fhaigheann siad ag baint úsáide as GA, ach
Shuiteáil siad picteilín javascript Deighleog ar a n-acmhainn gréasáin agus lódáladh sonraí faoi iompar a n-úsáideoirí isteach sa bhunachar sonraí sonraithe (postgres mar shampla). Ach tá a míbhuntáiste ag Deighleog freisin - an praghas. Mar shampla, má tá 90,000 MTU (úsáideoirí rianaithe míosúla) ag acmhainn gréasáin, ansin caithfidh tú ~1,000 $ in aghaidh na míosa a íoc leis an airgeadóir. Bhí an tríú fadhb ann freisin - chuir roinnt síntí brabhsálaí (cosúil le AdBlock) bac ar bhailiú na hanailíse toisc... Cuireadh iarratais http ón mbrabhsálaí chuig na fearainn GA agus Deighleog. Bunaithe ar mhianta ár gcliant, tá seirbhís anailíse cruthaithe againn a bhailíonn sraith iomlán sonraí (gan sampláil), atá saor in aisce agus is féidir oibriú ar ár mbonneagar féin.
Conas a oibríonn an tseirbhís
Tá trí chuid sa tseirbhís: picteilín javascript (a athscríobhamar níos déanaí sa chlóscríobh), cuirtear an chuid freastalaí i bhfeidhm sa teanga GO, agus bhí sé beartaithe Redshift agus BigQuery a úsáid mar bhunachar sonraí intí (chuir siad tacaíocht le haghaidh níos déanaí. Postgres, ClickHouse agus gcáithnínísneachta).
Socraíodh struchtúr imeachtaí an GA agus na Deighleog a fhágáil gan athrú. Ní raibh de dhíth ach gach imeacht a mhacasamhlú ón acmhainn gréasáin ina bhfuil an picteilín suiteáilte chuig ár n-innill. Mar a tharla sé, nach bhfuil sé seo deacair a dhéanamh. Sháraigh an picteilín Javascript an modh leabharlainne GA bunaidh le ceann nua, rud a rinne an t-imeacht a dhúbailt inár gcóras.
//'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);
});
});
}
Leis an bpicteilín Deighleog tá gach rud níos simplí; tá modhanna meánearraí ann, ceann acu a d’úsáideamar.
//'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.');
}
Chomh maith le himeachtaí a chóipeáil, chuireamar leis an gcumas json treallach a sheoladh:
//Отправка событий с произвольным 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'
});
Next, a ligean ar labhairt faoi an chuid freastalaí. Ba cheart don inneall glacadh le hiarratais http, iad a líonadh le faisnéis bhreise, mar shampla, sonraí geo (go raibh maith agat
//входящий 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"
}
Mar sin féin, faoi láthair tá arrays thiontú go simplí go teaghráin mar gheall ar Ní thacaíonn gach bunachar sonraí gaolmhar le réimsí arís agus arís eile. Is féidir freisin ainmneacha páirce a athrú nó iad a scriosadh trí úsáid a bhaint as rialacha roghnacha mapála. Ligeann siad duit scéimre na sonraí a athrú más gá nó cineál sonraí amháin a thiontú go ceann eile. Mar shampla, má tá teaghrán le stampa ama i réimse json (réimse_3_sub_réimse_1_sub_sub_field_1 ón sampla thuas), ansin chun réimse a chruthú sa bhunachar sonraí leis an gcineál stampa ama, ní mór duit riail mapála a scríobh sa chumraíocht. I bhfocail eile, déantar cineál sonraí an réimse a chinneadh ar dtús ag an luach json, agus ansin cuirtear an riail réitigh cineál (má tá sé cumraithe). Tá 4 phríomhchineál sonraí aitheanta againn: STRING, FLOAT64, INT64 agus TIMESTAMP. Breathnaíonn na rialacha mapála agus cineál-réitigh mar seo:
rules:
- "/field_1/subfield_1 -> " #правило удаления поля
- "/field_2/subfield_1 -> /field_10/subfield_1" #правило переноса поля
- "/field_3/subfield_1/subsubfield_1 -> (timestamp) /field_20" #правило переноса поля и приведения типа
Algartam chun an cineál sonraí a chinneadh:
- struchtúr json a thiontú go struchtúr cothrom
- cineál sonraí na réimsí a chinneadh de réir luachanna
- rialacha mapála agus cineál-réitigh a chur i bhfeidhm
Ansin ón struchtúr json ag teacht isteach:
{
"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"
}
}
gheofar an scéimre sonraí:
"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
Shíleamar freisin gur cheart go mbeadh an t-úsáideoir in ann sonraí a dheighilt nó a roinnt sa bhunachar sonraí a chumrú de réir critéar eile agus chuir sé i bhfeidhm an cumas ainm an tábla a shocrú le tairiseach nó
tableName: '{{.product_type}}_{{._timestamp.Format "2006_01"}}'
Mar sin féin, is féidir le struchtúr na n-imeachtaí ag teacht isteach athrú ag am rite. Tá algartam curtha i bhfeidhm againn chun an difríocht idir struchtúr tábla atá ann cheana agus struchtúr imeachta ag teacht isteach a sheiceáil. Má aimsítear difríocht, déanfar an tábla a nuashonrú le réimsí nua. Chun é seo a dhéanamh, bain úsáid as an gceist SQL paiste:
#Пример для Postgres
ALTER TABLE "schema"."table" ADD COLUMN new_column character varying
ailtireacht
Cén fáth ar gá duit imeachtaí a scríobh chuig an gcóras comhad, agus gan iad a scríobh go díreach chuig an mbunachar sonraí? Ní fheidhmíonn bunachair shonraí go maith i gcónaí agus iad ag déileáil le líon mór ionchuir (
Foinse Oscailte agus pleananna don todhchaí
Ag pointe éigin, thosaigh an tseirbhís ag breathnú cosúil le táirge lán-chuimsitheach agus shocraigh muid é a scaoileadh chuig Foinse Oscailte. Faoi láthair, tá comhtháthú le Postgres, ClickHouse, BigQuery, Redshift, S3, Snowflake curtha i bhfeidhm. Tacaíonn gach comhtháthú le modhanna baisce agus sruthaithe de luchtú sonraí. Tacaíocht breise d'iarratais trí API.
Breathnaíonn an scéim chomhtháthaithe reatha mar seo:
Cé gur féidir an tseirbhís a úsáid go neamhspleách (mar shampla ag baint úsáide as Docker), ní mór dúinn freisin
→
→
→
Beidh áthas orainn má chuidíonn EventNative le do chuid fadhbanna a réiteach!
Ní féidir ach le húsáideoirí cláraithe páirt a ghlacadh sa suirbhé.
Cén córas bailithe staitisticí a úsáidtear i do chuideachta?
-
48,0%Google Analytics12
-
4,0%Deighleog1
-
16,0%Eile (scríobh sna tuairimí)4
-
32,0%Cuireadh do sheirbhís i bhfeidhm8
Vótáil 25 úsáideoir. Staon 6 úsáideoir.
Foinse: will.com