TW201539322A - 自客戶側應用程式之傳送資料壓縮序列化 - Google Patents

自客戶側應用程式之傳送資料壓縮序列化 Download PDF

Info

Publication number
TW201539322A
TW201539322A TW104102499A TW104102499A TW201539322A TW 201539322 A TW201539322 A TW 201539322A TW 104102499 A TW104102499 A TW 104102499A TW 104102499 A TW104102499 A TW 104102499A TW 201539322 A TW201539322 A TW 201539322A
Authority
TW
Taiwan
Prior art keywords
data
content
thread
server
client
Prior art date
Application number
TW104102499A
Other languages
English (en)
Other versions
TWI590157B (zh
Inventor
Timothy Michael Tully
Original Assignee
Yahoo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Inc filed Critical Yahoo Inc
Publication of TW201539322A publication Critical patent/TW201539322A/zh
Application granted granted Critical
Publication of TWI590157B publication Critical patent/TWI590157B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/146Coding or compression of tree-structured data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3082Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3096Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一種系統,可於一客戶側應用程式執行緒(例如一網路瀏覽器執行緒)上有效壓縮與一頁面視圖有關的儀表資料,並於網際網路上傳送壓縮資料至一伺服器(例如一分析伺服器)。為產生壓縮,系統可包含資料掃描、編碼建置、進行編碼以及編碼序列化。壓縮可於客戶側應用程式的一背景執行緒上運行,因此其不干擾客戶側應用程式所運行的其他程序。舉例而言,一網路工作者即可實施本文所述之編碼壓縮。

Description

自客戶側應用程式之傳送資料壓縮序列化
本發明是關於在網路間從運行一客戶側應用程式(例如網路瀏覽器)的客戶裝置傳送壓縮資料。本發明也關於經由一客戶側應用程式來串流內容之技術,例如將內容串流至由一網路瀏覽器所顯示的頁面視圖之技術。此外,本申請案關於與串流內容相關聯的資料壓縮,包括與一內容串流相關聯的內容資料及使用者互動資料。
在複雜的客戶側應用程式與網站的頁面視圖中,越來越大量的內容與資料要經由網際網路而呈現及被追蹤。在某些例子中,所提供與追蹤的內容及資料的成長率超過了每成本下頻寬與通訊速度的成長率。為更快速地傳送更多資料,目前的解決方式通常著重於改良通訊頻道。另一種解決方式是改變要傳送的資料,使資料更為密實或至少使資料變成較小。
使資料更為密實或至少變成較小的一種習知方式是將其壓縮。舉例而言,已知且常見的是壓縮電子郵件附件,以增加電子郵件附件上傳以經由電子郵件傳送、在電子郵件伺服器之間通過網路而傳送以及最後由一接收電子郵件伺服器與點擊下載附件的使用者進行下載的速度。因為此種需求,壓縮已經逐步遍及整個資訊時代,而且進步的資訊系統已可 基於許多理由而包含資料壓縮。
然而,目前用於以網際網路傳送追蹤內容資料與使用者互動資料以供分析用的方法與系統(其有效應用了資料壓縮)可被改良。本文所說明的是例示的改良。
此外,關於以網際網路傳送內容,特別是通過串流方式,對使用者呈現新內容的性能與無縫性(seamlessness)仍然有問題,特別是當使用者裝置包含或連接至具有有限頻寬的連結時。本文所說明的也是用於增進以網際網路傳送內容之無縫性的系統與方法,以及壓縮資料與相關聯資料以傳送至一伺服器(例如網路分析伺服器)的方式。
又,一種系統,包含用於在一頁面視圖的一或多個區段內掃描該頁面視圖的一文件物件模型(DOM)以產生掃描儀表資料之裝置、用於序列化該掃描儀表資料之裝置以及用於壓縮該序列化資料之裝置。該用於掃描之裝置係於一客戶側應用程式的一第一執行緒上運行。該用於壓縮之裝置係於該客戶側應用程式的一第二執行緒上運行。
100‧‧‧資訊系統
102‧‧‧帳戶伺服器
104‧‧‧帳戶資料庫
106‧‧‧搜尋引擎伺服器
108‧‧‧廣告伺服器
110‧‧‧廣告資料庫
112‧‧‧內容伺服器
114‧‧‧內容資料庫
116‧‧‧內容緩存伺服器
118‧‧‧分析伺服器
119‧‧‧分析資料庫
120‧‧‧廣告主裝置
122‧‧‧廣告主裝置
124‧‧‧使用者裝置
126‧‧‧膝上型電腦
128‧‧‧智慧型電話
202‧‧‧顯示廣告
204‧‧‧行動裝置顯示畫面
206‧‧‧行動應用顯示畫面
208‧‧‧個人電腦顯示畫面
212‧‧‧文字
214‧‧‧圖形影像
216‧‧‧邊界
222a‧‧‧廣告項目
222b‧‧‧廣告項目
222c‧‧‧廣告項目
224a‧‧‧串流
224b‧‧‧串流
224c‧‧‧串流
226a‧‧‧內容項目
226b‧‧‧內容項目
226c‧‧‧內容項目
228a‧‧‧內容項目
228b‧‧‧內容項目
228c‧‧‧內容項目
230b‧‧‧內容項目
230c‧‧‧內容項目
232b‧‧‧內容項目
232c‧‧‧內容項目
234b‧‧‧內容項目
234c‧‧‧內容項目
240a‧‧‧捲動軸
240b‧‧‧捲動軸
242‧‧‧頁面視圖
300‧‧‧系統
301‧‧‧客戶裝置
302‧‧‧編碼掃描器
303‧‧‧客戶側應用程式
304‧‧‧編碼建置器
306‧‧‧序列化裝置
308‧‧‧編碼壓縮器
310‧‧‧通訊介面
312‧‧‧使用者互動追蹤器
314‧‧‧資料庫
316‧‧‧內容
318‧‧‧配置器資料
320‧‧‧內容追蹤器
322‧‧‧配置器
324‧‧‧配置器
326‧‧‧配置器
328‧‧‧配置器
330‧‧‧配置器
332‧‧‧配置器
334‧‧‧配置器
416‧‧‧前台執行緒
418‧‧‧背景執行緒
420‧‧‧接收頁面視圖
422‧‧‧編碼掃描
424‧‧‧編碼建置
426‧‧‧使用者追蹤
428‧‧‧內容追蹤
430‧‧‧序列化
432‧‧‧壓縮
434‧‧‧傳送
440‧‧‧更新頁面視圖內的內容
440a‧‧‧第一時期
440b‧‧‧第二時期
440c‧‧‧第三時期
440d‧‧‧第四時期
440e‧‧‧第五時期
516‧‧‧前台執行緒
518‧‧‧背景執行緒
520‧‧‧接收頁面視圖
522‧‧‧編碼掃描
524‧‧‧編碼建置
526‧‧‧使用者追蹤
528‧‧‧內容追蹤
530‧‧‧序列化
532‧‧‧壓縮
534‧‧‧傳送
540‧‧‧更新頁面視圖內的內容
540a‧‧‧第一時期
540b‧‧‧第二時期
540c‧‧‧第三時期
540d‧‧‧第四時期
540e‧‧‧第五時期
552‧‧‧更新頁面視圖緩存內的內容
616‧‧‧前台執行緒
618‧‧‧背景執行緒
620‧‧‧接收頁面視圖
622‧‧‧調流掃描
624‧‧‧編碼掃描
626‧‧‧編碼建置
628‧‧‧使用者追蹤
630‧‧‧內容追蹤
632‧‧‧序列化
634‧‧‧壓縮
640‧‧‧傳送
640a‧‧‧更新頁面視圖內的內容
640b‧‧‧第一時期
640c‧‧‧第二時期
640d‧‧‧第三時期
640e‧‧‧第四時期
652‧‧‧第五時期
660‧‧‧更新頁面視圖緩存內的內容
702‧‧‧執行緒
704‧‧‧執行緒
706‧‧‧執行緒
708‧‧‧執行緒
1000‧‧‧電子裝置
1002‧‧‧處理器(中央處理單元)
1004‧‧‧通訊匯流排
1006‧‧‧電源供應器
1010‧‧‧記憶體
1012‧‧‧隨機存取記憶體
1014‧‧‧唯讀記憶體
1020‧‧‧基本輸入輸出系統
1021‧‧‧操作系統
1022‧‧‧應用程式
1024‧‧‧資料儲存器
1030‧‧‧網路介面
1040‧‧‧輸入/輸出介面
第一圖說明了一種例示資訊系統的方塊圖,其包含了可通訊耦接於一例示系統之網路的例示裝置,該例示系統係執行資料之客戶側壓縮以傳送至一伺服器。
第二圖說明了在每一個客戶側應用程式的通信期內由客戶側應用程式所呈現之例示螢幕的原始顯示與新顯示的廣告項目及內容項目,例如在客戶側應用程式的通信期內在客戶側應用程式(例如網路瀏覽器)的頁面視圖上串流傳送的原始圖形項目與新圖形項目。
第三圖說明了與執行資料的客戶側壓縮以傳送至一伺服器(例如分析伺服器)之與一例示系統(系統300)互動的第一圖所示例示資訊系統(資訊系統100)的方塊圖。
第四圖至第六圖說明由可執行資料客戶側壓縮以傳送至一伺服器的例示系統(例如第三圖之系統300)所執行的例示操作。
第七圖說明了可運行第四圖至第六圖的操作以及其他客戶側應用程式操作的一或多個執行緒。
第八圖說明了由可經由在壓縮前進行資料掃描的批次處理而調流資料客戶側壓縮以傳送至一伺服器的例示系統(例如第三圖之系統300)所執行的例示操作。
第九圖說明了由可呈現串流傳送無限量無縫內容之頁面視圖及可執行與無縫內容相關聯之資料客戶側壓縮以傳送至一伺服器的例示系統(例如第三圖之系統300)所執行的例示操作。
第十圖是可實施例示系統的一或多個構想或相關的一或多個構想的例示電子裝置的方塊圖,其中所述例示系統可執行資料客戶側壓縮以傳送至一伺服器(例如第三圖之系統300及通訊耦接至系統300的系統)。
自客戶側應用程式之傳送資料壓縮序列化之概述
本文所述為用於有效壓縮與一客戶側應用程式執行緒上頁面視圖有關的儀表資料及於網際網路上將壓縮資料傳送至一伺服器(例如一分析伺服器)的系統、產品與方法。為進行壓縮,所述系統、產品與方 法可包含資料掃描、編碼建置、進行編碼以及編碼序列化。壓縮可於該客戶側應用程式的一背景執行緒上運行,因此其不干擾客戶側應用程式所運行的其他程序。舉例而言,一網路工作者即可實施本文所述之編碼壓縮。
關於壓縮的資料,儀表資料包含追蹤的內容資料、追蹤的頁面視圖資料、追蹤的使用者互動資料以及追蹤的客戶側應用程式資料。追蹤的內容資料包含與內容本質有關的追蹤資料以及與該內容的人為可感知特徵有關的任何資料,例如內容的音頻及/或可視化特徵。追蹤的頁面視圖資料包含與一頁面視圖的人為可感知特徵及該頁面視圖的一或多個區段有關的追蹤資料。追蹤的使用者互動資料包含與對該頁面視圖及其內容之使用者互動(例如針對頁面視圖縮圖與其內容的點擊及其他類型手勢)有關的追蹤資料。追蹤的客戶側應用程式資料包含與客戶側應用程式屬性及參數有關的追蹤資料,例如網路瀏覽器版本以及這些版本的技術與可視化特徵。追蹤的客戶側應用程式資料也可包含追蹤的組態資料。
圖式的詳細說明
第一圖說明一例示資訊系統的方塊圖,該例示資訊系統包含將執行資料的客戶側應用程式壓縮以傳送至一伺服器(例如用於分析)之與例示系統通訊耦接之網路的例示裝置。第一圖的實例中之資訊系統100包含一帳戶伺服器102、一帳戶資料庫104、一搜尋引擎伺服器106、一廣告伺服器108、一廣告資料庫110、一內容資料庫114、一內容伺服器112、一內容緩存伺服器116、一分析伺服器118以及一分析資料庫119。前述伺服器與資料庫可於網路120上通訊耦接。
資訊系統100可由一或多個廣告主裝置(例如廣告主裝置 122)及一或多個使用者裝置(例如使用者裝置124)於網路120上進行存取。在此一線上資訊系統的各種實例中,使用者係於網路120上搜尋並自來源取得內容,例如自搜尋引擎伺服器106、廣告伺服器108、廣告資料庫110、內容資料庫114、內容伺服器112及內容緩存伺服器116取得內容。廣告主提供廣告以供放置在電子屬性(electronic properties)(例如網頁)上,以及在網路上發送至使用者裝置(例如使用者裝置124)之其他傳送內容。一線上供應者可佈署及操作該線上資訊系統,例如雅虎公司(Yahoo! Inc.)。
帳戶伺服器102儲存廣告主之帳戶資訊。帳戶伺服器102與帳戶資料庫104資料通訊。帳戶資訊包含與每一個個別廣告主相關聯的一或多個資料庫記錄。帳戶管理伺服器102可自帳戶資料庫104儲存、維護、更新及讀取任何適當的資訊。實例包含了廣告主識別資訊、廣告主安全資訊(例如密碼與其他安全憑證)、帳戶結算資訊以及關於與其廣告相關聯之內容和與其廣告與相關聯內容之使用者互動有關的壓縮資訊。又,實例也包括與其廣告和相關聯內容的分析資料以及與前述之使用者互動有關的分析資料。
帳戶伺服器102可使用任何適當裝置來實施。帳戶管理伺服器102係用以作為一單一伺服器、複數個伺服器或該領域中習知的任何其他類型計算裝置。可經由保護帳戶管理程式與帳戶資訊不受外部竄改的防火牆來完成對帳戶伺服器102的存取。經由增強標準通訊協定即可提供額外的安全性,例如安全性HTTP(HTTPS)或安全套接層(SSL)。舉例而言,這類安全性可應用至第一圖的伺服器。
帳戶伺服器102可提供一廣告主前端,以簡化對一廣告主的 帳戶資訊之存取程序。該廣告主前端可以是形成一使用者介面之程式、應用程式或軟體子程式。在一特定實例中,廣告主前端係可被存取為一存取廣告主可於廣告主裝置(例如廣告主裝置122)上觀看、具有一或多個電子屬性之一網站。廣告主可利用廣告主前端來觀看及編輯帳戶資料與廣告資料。在編輯廣告資料之後,帳戶資料可接著被儲存至帳戶資料庫104。
搜尋引擎伺服器106係一電腦系統、一或多個伺服器或該領域中習知的任何其他計算裝置。或者,搜尋引擎伺服器106係儲存在一電腦可讀取儲存媒體上的電腦程式、指令或軟體碼,其係於一單一伺服器、複數個伺服器或該領域中習知的任何其他類型計算裝置的處理器上運行。搜尋引擎伺服器106可由使用者裝置予以存取,使用者裝置例如是使用者透過網路120而操作的使用者裝置124。
使用者裝置124傳送一使用者請求至搜尋引擎伺服器106。搜尋引擎伺服器106使用任何合適的協定或演算法找出匹配資訊,並將資訊返送至使用者裝置124。搜尋引擎伺服器106係設計為幫助使用者找出位於網際網路或內部網路上的資訊。在一實例中,搜尋引擎伺服器106也透過網路120對使用者裝置124提供帶有內容的一電子屬性,例如網頁,其包含搜尋結果、與使用者查詢的上下文匹配之資訊、對其他網路目的地的連結或是操作使用者裝置124的使用者有興趣的資訊或資訊檔案以及選擇要對使用者顯示的內容項目與廣告項目之串流或網頁。搜尋引擎伺服器106所提供的前述資訊係本文所述之掃描、建置、追蹤、序列化、編碼、壓縮及/或傳送的資料的一部分。
搜尋引擎伺服器106可使裝置(例如使用者裝置124或任何其 他客戶裝置)利用一搜尋請求而搜尋有興趣的檔案。一般而言,搜尋引擎伺服器106可由一客戶裝置經由一或多個伺服器或直接於網路120上進行存取。搜尋引擎伺服器106包含一網路爬蟲構件、一索引器構件、一索引儲存構件、一搜尋構件、一排序構件、一緩存、一設定檔儲存構件、一登錄構件、一設定檔建置器以及一或多個應用程式介面(APIs)。搜尋引擎伺服器106係以分佈式方式佈署,舉例而言,例如經由一組分佈式伺服器。於一網路內之構件可以是重複的,例如作為備用或供較佳存取。
廣告伺服器108是運作以對使用者裝置(例如使用者裝置124)供應廣告。廣告包括定義使用者裝置的使用者有興趣的廣告資訊之資料。廣告包括文字資料、圖形資料、影像資料、視頻資料或音頻資料。廣告進一步包括定義了對提供這類資料的其他網路資源之一或多個連結。其他位置可為網際網路上的其他位置、在廣告主所操作的內部網路上的其他位置或任何入口。前述標定資料是本文所述之掃描、建置、追蹤、序列化、編碼、壓縮及/或傳送的資料的一部分。廣告伺服器108所提供的前述廣告可為本文所述之掃描、建置、追蹤、序列化、編碼、壓縮及/或傳送的資料的一部分。
對於線上資訊供應者而言,廣告可被顯示於由至少部分基於一或多個搜尋項目之一使用者定義之搜尋所產生的電子屬性上。如果所顯示的廣告與一或多個使用者的興趣有關,則廣告是有利於使用者、廣告主或網路入口。因此,已經發展出各種技術來推知使用者興趣、使用者意圖,或是續而對使用者標定出相關的廣告。前述標定資料可為本文所述之掃描、建置、追蹤、序列化、編碼、壓縮及/或傳送之資料的一部分。
一種用以呈現標定廣告的方式包括使用人口統計特性(例如年齡、收入、性別、職業等)以預測使用者行為,例如是藉由分組。廣告是至少部分根據預測的使用者行為而對一標定讀者中的使用者呈現。前述之標定資料可為本文所述之掃描、建置、追蹤、序列化、編碼、壓縮及/或傳送的資料的一部分。
另一種方式包括設定檔類型的廣告標定。在這個方式中,係產生專屬於使用者的使用者設定檔以建立使用者行為模型。舉例來說,藉由追蹤使用者通過網站或網路位址的路徑、並且至少部分基於最後傳送的頁面或廣告來編譯一設定檔。關聯性可被識別(例如針對使用者購買)。識別出的關聯性可用以藉由對特定使用者標定內容或廣告而標定可能的購買者。前述標定資料可為本文所述之掃描、建置、追蹤、序列化、編碼、壓縮及/或傳送的資料的一部分。
還有另外一種方式是包括根據使用者所請求的電子屬性的內容來進行標定。廣告係置放在一電子屬性上或與關於廣告主題有關的其他內容相關聯。內容與廣告之間的關係是以任何適當方式來決定。舉例而言,藉由分析呈現的內容,即可確認一特定電子屬性的整體主題。此外,現已發展出用於顯示對使用者目前正在觀看的文章特定區段所安排之廣告。因此,可藉由匹配廣告與電子屬性內的關鍵字及/或短語來選擇廣告。前述標定資料為本文所述之掃描、建置、追蹤、序列化、編碼、壓縮及/或傳送的資料的一部分。
廣告伺服器108包括可運作以格式化廣告資料的邏輯與資料,且此邏輯與資料係用以供傳送至使用者裝置。廣告伺服器108與廣告資 料庫110資料通訊。廣告資料庫110儲存要供應至使用者裝置的資訊,包括定義廣告之資料。此廣告資料係由另一資料處理裝置或由廣告主儲存於廣告資料庫110中。廣告資料包含定義廣告創作與個別廣告之出價金額的資料。前述廣告格式化與標價資料可為本文所述之掃描、建置、追蹤、序列化、編碼、壓縮及/或傳送的資料的一部分。
廣告資料係經格式化而成為對使用者裝置所提供的內容項目與廣告項目之串流中所含的一廣告項目。經格式化之廣告項目可由外觀、大小、形狀、文字格式化、圖形格式化及所包含資訊予以指明,其係經標準化以為串流中的廣告項目提供一致樣貌。
此外,廣告伺服器108係與網路120資料通訊。廣告伺服器108經由網路120傳送廣告資料與其他資訊至裝置。此資訊包含傳送至一使用者裝置的廣告資料。此資訊也包括與一廣告主裝置(例如廣告主裝置122)通訊的廣告資料與其他資訊。操作廣告主裝置的廣告主係於網路上存取廣告伺服器108,以存取資訊(包括廣告資料)。此存取包括開發廣告創作、編輯廣告資料、刪除廣告資料、設定與調整出價金額及其他活動。廣告伺服器108接著對其他網路裝置提供廣告項目,例如內容緩存伺服器116。
廣告伺服器108提供一廣告主前端,以簡化存取一廣告主之廣告資料的程序。廣告主前端可以是形成一使用者介面之程式、應用程式或軟體子程式。在一個特定實例中,廣告主前端係可被存取為一存取廣告主可於廣告主裝置上觀看、具有一或多個電子屬性之一網站。廣告主可利用廣告主前端來觀看及編輯廣告資料。在編輯廣告資料之後,廣告資料係接著被儲存至廣告資料庫110以供後續於廣告中傳送至使用者裝置。
廣告伺服器108可以是一電腦系統、一或多個伺服器或該領域中習知的任何其他計算裝置。或,廣告伺服器108係儲存在一電腦可讀取儲存媒體上的電腦程式、指令或軟體碼,其係於一單一伺服器、複數個伺服器或該領域中習知的任何其他類型計算裝置的處理器上運行。
內容伺服器112與內容緩存伺服器116係從內容資料庫114或從可於網路上120存取的另一位置存取關於內容項目之資訊。內容伺服器112與內容緩存伺服器116於網路120上對裝置傳送定義內容項目之資料與其他資訊。舉例而言,內容緩存伺服器116可從內容緩存伺服器116中的一佇列傳送超連結,其中所述超連結包括供應內容(例如從內容伺服器112或另一內容來源所供應之內容)之位址。舉例而言,這些超連結可連結至本文所述之串流中所提供的內容。一般而言,關於內容項目之資訊係包含傳送至使用者裝置的任何類型的內容資料。
關於內容項目的資訊也可包含內容資料以及由操作一內容供應者裝置的內容供應者所傳送的其他資訊。操作一內容供應者裝置的內容供應者係於網路120上存取內容伺服器112或內容緩存伺服器116,以存取資訊(包含內容資料)。此存取係用於開發內容項目、編輯內容項目、刪除內容項目、設定與調整出價金額與其他活動。
內容伺服器112或內容緩存伺服器116可提供一內容供應者前端以簡化對一內容供應者的內容資料的存取流程。內容供應者前端可以是形成一使用者介面之程式、應用程式或軟體子程式。在一特定實例中,內容供應者前端係可被存取為一存取內容供應者可於內容供應者裝置上觀看、具有一或多個電子屬性之一網站。內容供應者可利用內容供應者前端 來觀看及編輯內容資料。在編輯內容資料之後,例如在內容伺服器112處或另一內容來源處,可接著將內容資料儲存至內容資料庫114或內容緩存伺服器116以供後續傳送至使用者裝置。在一實例中,內容緩存伺服器116係專用於緩存(例如透過一佇列及/或堆疊)內容或內容資料,以供後續傳送至一使用者裝置(例如第三圖的客戶裝置301)。
內容伺服器112或內容緩存伺服器116包括運作以格式化內容資料與其他資訊以供傳送至使用者裝置的邏輯與資料。內容伺服器112或內容緩存伺服器116也可提供內容項目至其他網路裝置。網路伺服器112可對內容緩存伺服器116提供內容項目或對這些項目的連結,而內容緩存伺服器116最終係供應項目至一使用者裝置,例如第三圖的客戶裝置301。
內容資料被格式化為一內容項目,其可包含於提供至一使用者裝置的內容項目與廣告項目之串流中。經格式化的項目可由外觀、大小、形狀、文字格式、圖形格式與包含的資訊而予以特定,其係經標準化以為串流中的內容項目提供一致樣貌。
在一實例中,內容項目具有一相關出價金額,其係用於對呈現給使用者裝置的項目串流中的內容項目進行排序與定位。在其他實例中,內容項目並不包含出價金額,或是出價金額並不用於排序內容項目。這類內容項目被視為是非產生收益之項目。
內容伺服器112及/或內容緩存伺服器116可包含運作以格式化內容資料與其他資訊以供傳送至使用者裝置的邏輯與資料。內容伺服器112及/或內容緩存伺服器116接著可提供內容項目至其他網路裝置(例如廣告伺服器108)。
內容緩存伺服器116可為地理上分佈以增進更快速擷取資料之複數個內容緩存伺服器的其中一個。舉例而言,使用者裝置(例如客戶裝置301)係自地理上最靠近的內容緩存伺服器或是當最靠近者較忙碌時自地理上第二靠近的內容緩存伺服器接收內容資料。換言之,所使用的內容緩存伺服器可根據哪一個內容緩存伺服器應對請求的使用者裝置最快提供資料之決定而定。此決定可根據發生於伺服器處或與其相關聯的流量及/或與請求的使用者裝置之地理鄰近程度而定。又,在一實例中,也可使用各種捷徑來決定與一伺服器或地理上最靠近的伺服器相關聯的流量。舉例而言,可使用一智慧型網域名稱系統(DNS)來確認最靠近的內容緩存伺服器。又,在一實例中,為了增進內容資料傳送速度,內容資料可被儲存於內容緩存伺服器116的RAM中,並經由輕量級的代理伺服器而被供應,例如經由Apache伺服器而實施的輕量級代理伺服器。
前述伺服器與資料庫可經由任何適當的計算裝置實施。計算裝置可發送或接收訊號(例如經由有線或無線網路),或可處理或儲存訊號(例如於記憶體中儲存為物理記憶狀態),且因此係作為伺服器而運作。因此,舉例來說,可作為伺服器而運作的裝置包括專用機架固定式伺服器、桌上型電腦、膝上型電腦、機上盒、結合各種特徵(例如前述裝置的兩個或多個特徵)之整合型裝置等。
伺服器在配置或功能上係可廣泛變化,但一般而言,伺服器係包含一或多個中央處理單元與記憶體,伺服器也包含一或多個主要儲存裝置、一或多個電源供應器、一或多個有線或無線網路介面、一或多個輸入/輸出介面或一或多個操作系統(例如Windows Server、Mac OSX、Unix、 Linux、FreeBSD等)。
前述伺服器與資料庫係實施為線上伺服器系統,或與線上伺服器系統通訊。線上伺服器系統包含一裝置,其包括可回應於所接收之頁面視圖請求或其他內容傳送形式、經由網路提供資料至另一裝置的配置。舉例而言,線上伺服器系統係管理一網站,例如一社交網路網站,其實例包括但不限於:Flicker、Twitter、Facebook、LinkedIn或個人使用者網站(例如部落格、影音部落格、線上約會網站等)。線上伺服器系統也管理各種其他網站,其包括但不限於商業網站、教育網站、字典網站、百科全書網站、維基、金融網站、政府網站等。
線上伺服器系統係進一步提供各種服務,包含網路服務、第三方服務、音頻服務、視頻服務、電子郵件服務、即時通訊(IM)服務、SMS服務、MMS服務、FTP服務、IP網路電話(VOIP)服務、日曆服務、相片服務等。內容的實例包括文字、影像、音頻、視頻等,其係經處理為物理訊號的形式,例如電氣訊號,且係以例如物理狀態儲存於記憶體中。可運作為線上伺服器系統的裝置的實例包括桌上型電腦、多處理器系統、微處理器式或可編程之消耗性電子產品等。線上伺服器系統可為或不為本文所述之伺服器與資料庫共同所有或以其加以控制。
網路120可包含任何資料通訊網路或網路組合。網路可耦接裝置,因此通訊可於例如伺服器與客戶裝置或其他類型裝置之間交換,包括在經由例如無線網路而耦接的無線裝置之間交換。網路也包含主要儲存器,例如網路附加的儲存器(NAS)、儲存區網路(SAN)或其他類型的電腦或機器可讀取媒介。網路包括網際網路、一或多個區域網路(LANs)、 一或多個廣域網路(WANs)、線路型連接、無線型連接或其任意組合。同樣的,次網路(例如應用不同的架構或與不同的協定相容者)係可於一較大網路(例如網路120)內互相運作。
各種類型的裝置都可用以提供不同架構或協定之互相運作能力。舉例而言,路由器在分離且獨立的LANs之間提供連結。通訊連結或通道例如可包含類比市電話線路(例如扭線對、同軸纜線)、完全或部分數位線路(包括T1、T2、T3或T4型線路)、整合式服務數位網路(ISDNs)、數位用戶線路(DSLs)、無線連結(包括衛星連結)或其他通訊連結或通道,如熟習該領域技術之人士所習知者。此外,計算裝置或其他相關電子裝置係可遠端耦接至一網路,例如經由電話線路或連結。
廣告主裝置122包括任何資料處理裝置,其可於網路120上存取資訊系統100。廣告主裝置122係運作以於網路120上與本文所述之任何伺服器或資料庫互動。廣告主裝置122係實施一客戶側應用程式,例如網路瀏覽器,以觀看電子屬性及提交使用者請求。廣告主裝置122係傳送資料至資訊系統100,包括定義電子屬性與其他資訊之資料。廣告主裝置122自資訊系統100接收資料,其包括定義電子屬性與廣告創作之資料。
在一實例中,內容供應者係利用內容供應者裝置存取資訊系統100,內容供應者裝置在結構與功能上通常是與廣告主裝置相似。舉例而言,內容供應者裝置提供了對內容資料庫114中的內容資料的存取。
使用者裝置124包括可於網路120上存取資訊系統100之任何資料處理裝置。使用者裝置124係運作以於網路120上與搜尋引擎伺服器106廣告伺服器108、內容伺服器112、內容緩存伺服器116及分析伺服器118互 動。使用者裝置124係實施一客戶側應用程式,例如網路瀏覽器,用於觀看電子內容及提交使用者請求。操作使用者裝置124的使用者係輸入一搜尋請求,並將該搜尋請求傳送至資訊系統100。搜尋請求係由搜尋引擎進行處理,而搜尋結果係返送至使用者裝置124。
在其他實例中,使用者裝置124的使用者可自線上資訊系統100請求資料,例如頁面資訊。資料也可提供於其他環境中,例如本地行動應用裝置、TV應用裝置或音頻應用裝置。線上資訊系統100提供資料或將瀏覽器重新導向另一個資料來源。此外,廣告伺服器可從廣告資料庫110中選擇廣告,並將定義廣告的資料包含在對使用者裝置124的提供資料中。
在存取資訊系統100上的資訊時,廣告主裝置122與使用者裝置124係運作為一客戶裝置。客戶裝置(例如廣告主裝置122與使用者裝置124)係包含可發送或接收訊號(例如經由有線或無線網路)的一計算裝置。舉例而言,客戶裝置係包含桌上型電腦或可攜式裝置,例如行動電話、智慧型電話、顯示呼叫器、射頻(RF)裝置、紅外線(IR)裝置、個人數位助理(PDA)、手持式電腦、平板電腦、膝上型電腦、機上盒、可穿戴式電腦、結合各種特徵(例如前述裝置的特徵)的整合型裝置等。在第一圖的實例中,膝上型電腦126與智慧型電話128(都可以是客戶裝置)都可運作作為廣告主裝置或使用者裝置。
客戶裝置在能力與特徵上都可加以變化。所主張的標的旨在涵蓋可能變化例的廣泛範圍。舉例而言,行動電話可包含數字小鍵盤或具有限制功能的顯示器(例如單色液晶顯示器)以顯示文字。然而,相反地,作為另一實例,可網路啟動之客戶裝置係包含一或多個實體或虛擬鍵盤、 主要儲存器、一或多個加速器、一或多個陀螺儀、全球定位系統(GPS)或其他類型的位置辨識能力,或是具有高度功能性的顯示器,舉例而言,如觸控式彩色2D或3D顯示器。
客戶端裝置(例如廣告主裝置122與使用者裝置124)可包含或執行各種操作系統,包括個人電腦操作系統(例如Windows、iOS或Linux)或行動裝置操作系統(例如iOS、Android或Windows Mobile)等。客戶裝置可包含或執行各種可能的應用程式,例如促成傳訊至其他裝置的客戶軟體應用程式,例如傳送一或多個訊息,如經由電子郵件、短訊息服務(SMS)或多媒體訊息服務(MMS),包括經由網路,如社交網路(包含如Facebook、LinkedIn、Twitter、Flickr或Google+),在此僅提供數個可能實例。客戶裝置也包含或執行一應用程式以傳送內容,例如文字內容、多媒體內容等。客戶裝置也可包含或執行一應用程式以執行各種可能任務,例如瀏覽、搜尋、播放各種形式的內容,包括本地或遠端儲存或串流之影音或遊戲。前述係僅為說明所主張之標的意欲包含可能特徵或能力的廣泛範圍。至少部分的特徵、能力及與前述之互動係藉由本文所述之個別程序而被追蹤、序列化、編碼、壓縮及傳送至一相關伺服器。
又,所揭方法與系統係至少部分於一雲端計算環境中實施,至少部分於一伺服器中實施,至少部分於一客戶裝置中實施,或於前述組合中實施。
第二圖說明了在每一個客戶側應用程式的通信期內,客戶側應用程式所呈現的例示畫面之原始與新顯示的廣告項目及內容項目,例如在客戶側應用程式(例如網路瀏覽器)通信期內於客戶側應用程式的頁面 視圖上串流傳送之原始圖形項目與新圖形項目。顯示的內容項目與廣告項目係由第一圖的搜尋引擎伺服器106、廣告伺服器108、內容伺服器112或內容緩存伺服器116所提供。
在第二圖中,顯示廣告202係說明為顯示於各種顯示畫面上,包括行動網路裝置顯示畫面204、行動應用程式顯示畫面206以及個人電腦顯示畫面208。行動網路裝置顯示畫面204係顯示於一行動手持裝置(例如智慧型電話)的顯示螢幕上。行動應用程式顯示畫面206係顯示於一可攜式裝置(例如平板電腦)的顯示螢幕上。個人電腦顯示畫面208係顯示於個人電腦(PC)的顯示螢幕上。
顯示廣告202係如第二圖所示,其經格式化以顯示於一使用者裝置上,而非作為用以說明此一顯示廣告的內容實例的部分串流。顯示廣告202包括文字212、圖形影像214與定義邊界216。顯示廣告202係由一廣告主為了放置在網頁上而開發,以發送至使用者所操作的使用者裝置。顯示廣告202係置於網頁上的各種位置。然而,定義邊界216與顯示廣告的形狀必須要與網頁上的一可用空間匹配。若可用空間具有錯誤形狀或大小,則顯示廣告202也許無法使用。
為了克服這些要件與限制,顯示廣告202係經重新格式化或交替地格式化,以納入內容項目與廣告項目之串流中,包括併入顯示廣告202的內容之串流廣告。前述之重新格式化或格式化以納入串流中係發生於內容緩存伺服器116及/或內容伺服器112處,舉例而言,重新格式化或格式化以納入串流中係發生於內容伺服器112處,但這些活動的結果係於內容緩存伺服器116處進行緩存及/或精製。
在這些實例中,顯示廣告係顯示為部分的串流224a、224b與224c。串流224a、224b、224c包含一系列的項目,舉例而言,這些項目係逐一向下顯示於在行動網路裝置顯示畫面204、行動應用裝置顯示畫面206與個人電腦顯示畫面208上所觀看的網頁上。串流224a、224b、224c可包含任何類型的項目。在所述實例中,串流224a、224b、224c包括內容項目與廣告項目。舉例而言,串流224a包括內容項目226a與228a,以及廣告項目222a;串流224b包括內容項目226b、228b、230b、232b、234b以及廣告項目222b;而串流224c包括內容項目226c、228c、230c、232c與234c以及廣告項目222c。關於第二圖,內容項目可為非廣告主所發布的項目。但是,這些內容項目可包含廣告構件。每一個串流224a、224b、224c可包含任何數量的內容項目與廣告項目。
在一實例中,串流224a、224b、224c係經排列以對使用者呈現出無盡的項目序列,因此當顯示有其中一個串流224a、224b、224c的使用者裝置的使用者捲動顯示畫面時,在顯示的串流中即顯現出無縫的項目序列。舉例而言,捲動可經捲動橫幅240a與240b或藉由其他習知操作方式而進行,例如使用者以其手指於顯示串流224a、224b或224c的觸控螢幕上向下或向上拖曳。
為了增進項目的看似無盡序列,而使項目可因使用者操縱而更快速顯示,項目可由本地緩存及/或與客戶側應用程式或頁面視圖相關的遠端緩存(例如內嵌於內容緩存伺服器116中的遠端緩存)予以緩存。這些緩存可包含一佇列或堆疊,以儲存內容項目或對內容項目之連結。
位置在任何串流224a、224b、224c中的內容項目係包含新聞 項目、商務相關項目、運動相關項目等。此外,除了文字與圖形內容以外,任一串流的內容項目還可同時包含其他資料(例如音頻與視頻資料或應用)。每一個內容項目都可包含文字、圖形、其他資料與對其他資訊的連結。點擊或者是選擇連結即會將使用者裝置上的瀏覽器重新導向至一網頁,亦即含有額外資訊的登陸頁。舉例而言,點擊或者是選擇連結、重新導向至登陸頁、登陸頁以及額外資訊都可各自被追蹤,接著,與追蹤相關聯的資料可被序列化、編碼、壓縮、並傳送至一相關伺服器(例如分析伺服器118或帳戶伺服器102)。一旦由相關伺服器接收,壓縮資料即被解壓縮並解碼為序列化資料。又,序列化資料可反向處理為其原始狀態或接近其原始狀態。舉例而言,分析伺服器可接收與頁面視圖的一或多個串流相關聯的經批次掃描、序列化、編碼及壓縮之資料,並使這些程序反向以使資料轉生為其原始狀態或接近原始狀態。所轉生的資料係可用於分析或其他用途。
像是廣告項目222a、222b與222c這類串流廣告係被***內容串流中,補充了相關項目的序列,為終端使用者提供更無縫的體驗。類似於內容項目,廣告項目可包含文字或圖形內容以及其他資料,例如音頻或視頻資料或應用。每一個廣告項目222a、222b與222c都可包含文字、圖形、其他資料與對其他資訊之連結。點擊或選擇連結會使使用者裝置上的瀏覽器重新導向至稱之為登陸頁之網頁。點擊或選擇連結、重新導向至登陸頁、登陸頁本身以及額外資訊都可各自被追蹤,接著,與追蹤相關聯的資料可被序列化、編碼、壓縮、並傳送至一相關伺服器,例如分析伺服器118或帳戶伺服器102。
雖然例示的串流224a、224b、224c是分別以單一可見的廣告 項目222a、222b、222c來說明,但在一項目串流中可以包含任何數量的廣告項目。又,廣告項目在內容內會被區分時槽,例如對所有使用者而言都同樣區分時槽或根據個人化或群組而區分時槽(例如由群眾成員或內容進行分組)。時槽的調整係根據各種維度與演算法而進行。這種區分時槽的概念僅為許多網際網路行銷策略的其中一種,其可由第三圖的系統300或本文所述之其他系統、模組或運作(如第四圖至第九圖所述運作)中的其中一種而進行最佳化。
第三圖說明第一圖的例示資訊系統(資訊系統100)的方塊圖,其與執行資料的客戶側壓縮以供網路分析用之例示系統(系統300)互動。舉例而言,第三圖說明系統300,其可經由內容掃描、內容模型建置、內容與使用者互動追蹤、資料序列化、資料編碼及/或資料壓縮而於最少量封包對帳戶伺服器102及/或分析伺服器118進行最大量資料傳送。在一實例中,系統300可從一客戶裝置301(例如使用者裝置124、126或128)上傳最大量資料至一伺服器裝置(例如經由資訊系統100的網路120連接至客戶裝置的一伺服器裝置)。考慮經由網路應用裝置所呈現及追蹤的內容與資料的成長量、有限的頻寬以及對於速度需求增加,有這種可經由資料壓縮而於每一封包上傳大量資料的系統是特別有用的。
如本文所述,系統300係於客戶裝置301上受管理。然而,系統300的任一或多個專用態樣係可於客戶裝置301外部的裝置上受管理。又,如本文所述,系統300係經由客戶裝置301上所管理的一客戶側應用程式303而受管理,例如一網路瀏覽器。然而,除了客戶側應用程式303以外,也可在無主管理應用程式下或由另一應用程式管理系統300的任一或多個 專用態樣。
系統300包含一編碼掃描器302、一編碼建置器304、一序列化裝置306、一編碼壓縮器308以及一通訊介面310。系統300也包含一使用者互動追蹤器312與一內容追蹤器320。編碼掃描器302係至少通訊耦接至編碼建置器304與一或多個內容來源(例如第一圖的內容緩存伺服器116、內容伺服器112、廣告伺服器108及搜尋伺服器106)。
要由編碼掃描器302進行掃描的內容316係可經由一電子屬性的頁面視圖(例如網頁瀏覽)、多媒體播放器的串流傳送音頻及/或視頻、任何其他形式的電子內容傳送或其任意組合而提供。在大多數情況下,本申請案為便利之故係說明了與頁面視圖的互動,然系統300的例示態樣以及本文所述之其他系統與方法也可與媒體播放器的串流傳送音頻及/或視頻、任何其他形式的電子內容傳送或其任意組合互動。
這類內容可經由網路120而從內容來源傳送至客戶裝置301。然後,一旦客戶裝置301接收到內容316,編碼掃描器302即可掃描至少部分內容316。內容(例如內容316)可為任何電子形式的內容,其係配置以透過顯示器、揚聲器或任何其他使用者介面裝置而呈現。舉例而言,內容316可包含聽覺、視覺、觸覺或任何其他形式的人類可感知資訊中之一或多個。
當至少部分內容316是在一頁面視圖內、且當至少該部分的頁面視圖的來源編碼是可用的時,編碼掃描器302可掃描該來源編碼,以識別來源編碼的物件。當該來源編碼包含一或多個文件時,例如包含HTML及/或XML之來源編碼,編碼掃描器可使用一電腦程式(例如DOM指令檔) 來搜尋及識別該一或多個來源編碼文件之文件物件模型(DOM)的物件。舉例而言,DOM是一交叉平台,且與用於表示HTML和XML文件中的物件及與其互動的語言無關。DOM指令檔可包含寫作電腦語言,例如JAVASCRIPT與PHP,其係以各種方式與DOM互動。
DOM指令檔、其他的客戶側應用程式指令檔、小程序、其他軟體、類似的韌體、類似的電腦硬體或其任何組合皆可用於實施編碼掃描器302、編碼建置器304、追蹤器312與320、序列化裝置306、編碼壓縮器308及通訊介面310。
返參系統300的結構,編碼建置器304係至少通訊耦接至編碼掃描器302與序列化裝置306。編碼掃描器302也可通訊耦接至使用者互動追蹤器312及內容追蹤器320。使用者互動追蹤器312也至少通訊耦接至編碼建置器304與序列化裝置306。內容追蹤器320也是至少通訊耦接至編碼建置器304與序列化裝置306。序列化裝置306至少通訊耦接至編碼壓縮器308、編碼建置器304、使用者互動追蹤器312與內容追蹤器320。編碼壓縮器308係至少通訊耦接至至少序列化裝置306與通訊介面310。前述耦接可為直接耦接或經由中間裝置而耦接。系統300的每一個前述構件都可彼此直接或間接通訊耦接。舉例而言,編碼壓縮器308與序列化裝置306可經由編碼編碼器而耦接。
系統300也可包含編碼掃描器302、編碼建置器304、序列化裝置306、編碼壓縮器308、通訊介面310與追蹤器312及320之個別配置器322、324、326、328、330、332與334。個別配置器322、324、326、328、330、332與334可配置碼掃描器302、編碼建置器304、序列化裝置306、編 碼壓縮器308、通訊介面310與追蹤器312及320以於頁面視圖期間動態改變地執行其個別程序。可通訊耦接至其他相關伺服器(例如帳戶伺服器102與分析伺服器118)、與系統300相關聯的伺服器係可將配置資料318傳送至個別的配置器322、324、326、328、330、332與334。這些配置可動態地允許進行各種複雜特徵與互動,而不刷新頁面視圖或對例如內容緩存伺服器116以外的伺服器或客戶側應用程式303外部之裝置產生請求。
系統300也可包含編碼掃描器302、編碼建置器304、序列化裝置306、編碼壓縮器308、通訊介面310與追蹤器312及320以及系統300的任何其他構件之個別終端器(未示)。個別的終端器可終止或至少中斷編碼掃描器302、編碼建置器304、序列化裝置306、編碼壓縮器308、通訊介面310與追蹤器312及320所執行的運作。個別的終端器也可完全終止或從一頁面視圖通信期或甚至是客戶側應用程式303的整個通信期中移除編碼掃描器302、編碼建置器304、序列化裝置306、編碼壓縮器308、通訊介面310與追蹤器312及320。在一實例中,在重新起始系統構件之前,例如再重新起始通信期內的一構件之前,需先運行一個別終端器。
又,這些構件或這些構件的程序的終止或中斷係可於頁面視圖期間或於客戶側應用程式303的通信期期間動態改變地執行。這可立即限制各種特徵與互動。舉例而言,個別的終端器可通訊耦接至一安全性構件,因此在系統被病毒感染或可能被感染或有某些其他形式的損壞或安全漏洞時,即可終止該系統的任何運作或系統的任何構件。
在一實例中,編碼掃描器302可配置以於一執行緒(例如客戶側應用程式303的前台執行緒(如第四圖至第六圖中分別所示之前台執行 緒416、516和616))上運行編碼掃描程序(例如第四圖至第六圖中分別所示之編碼掃描422、522與622)。一觸發訊號(例如來自一遠端控制伺服器或本地控制器之傳送)係可讓編碼掃描器302起始掃描。該觸發訊號可為要追蹤的電子屬性的一或多個區段之指示的接收,例如經由要追蹤該電子屬性之HTTP或HTTPS請求。
經由執行緒,在掃描程序中之編碼掃描器302可被配置以接收要追蹤的內容316的一或多個區段之指示。又,在掃描程序內,經由執行緒,編碼掃描器302可被配置以掃描內容316的結構及/或組織,例如掃描一電子屬性的DOM的至少一部分(例如一網頁的DOM)。編碼掃描器302可被配置以於該內容的一或多個區段的至少其中一個區段內掃描該內容316的結構及/或組織。在一實例中,內容316的該一或多個區段是與該內容相關聯的來源編碼區塊。舉例而言,來源編碼區塊為一電子屬性的來源編碼區塊。
在掃描程序內,編碼掃描器302也可被配置以根據內容316的已掃描區段來識別出一或多個固定點。舉例而言,編碼掃描器302可被配置以根據內容316的已掃描結構及/或組織而識別出一或多個固定點,例如根據已經掃描的至少部分的電子屬性DOM。固定點可包含識別出部分的頁面視圖、對頁面視圖的元件或對其他內容之連結或對與頁面視圖相關聯電腦程式之連結的文字。在一實例中,這些連結可為HTML或XML超連結。除了來源編碼的文字以外,固定點可具有其他形式,且可提供本文未具體指明的其他功能。
固定點與固定點的類型是標準的或客製化的,例如對管理內容316的一電子屬性進行客製化。客製化可透過伴隨自內容來源或自系統控 制部分(例如控制伺服器)所傳送內容316之編碼區段或配置物件而進行。配置編碼也可包含除錯構件,以對掃描、登錄以及可能對最終建置和登錄資料組織進行除錯。配置編碼或物件可自動地及/或手動地產生。
在一實例中,編碼掃描器可被配置以自動決定(經由例如機器學習)要掃描的是內容316中的哪些區段。舉例而言,可決定在一內容清單中的哪些連結視圖是可以被掃描的。當掃描進行時,編碼掃描器可於一資料結構(例如陣列)中登錄個別資料。在一實例中,編碼掃描器可自動地登錄與已決定或選擇的固定點及/或區段相關聯之連結視圖。區段與固定點可經由清單中的金鑰數值對(例如陣列資料結構)而被選擇以進行掃描。舉例而言,數值對列表是多維的,因此在數值對之間的關係是可被識別的。金鑰數值對係代表各種符號實例,其代表內容的區段區分、段落及其他內容態樣,例如一電子屬性的來源編碼的結構元件。
在登錄內容316時(其係發生於掃描程序內),可使用各種開放來源及/或屬性庫。舉例而言,掃描與登錄係使用追蹤電子內容的各種音頻及/或視覺表示、與客戶側應用程式相關聯的各種參數以及各種類型使用者互動之專用庫。又,也可使用追蹤與瀏覽電子內容相關聯之使用者互動資料之專用庫。最終,一分析系統可為各種目的而使用已掃描與追蹤之內容316及/或客戶側應用程式的構件及與其相關聯的動作。
在一實例中,客戶側應用程式(例如網路瀏覽器)的各種特徵、維度及/或參數是可被追蹤的,並且可基於每次通信期之基礎下進行。此追蹤資訊可與一使用者相關聯,並可代表關於該使用者在網際網路上使用客戶側應用程式之使用者指紋。舉例而言,系統300可藉由追蹤一使用者 對他的或她的客戶側應用程式的獨特設定而追蹤一使用者。舉例而言,一使用者的網路瀏覽器可具有獨特的特徵排列,這是可被追蹤的。舉例而言,安裝的網路瀏覽器插件的獨特排列、想要的螢幕大小、接受的HTTP標頭、多用途網際網路郵件擴充類型及/或安裝的字型是可以被追蹤的。
除了在內容316的結構上的選擇性以外,可根據要對掃描與登錄資料運行的分析而集中掃描。又,根據不同分析目的之批次處理,掃描係可以批次方式獨立地運行。接著可藉由個別序列化與壓縮而分隔各別的批次掃描。舉例而言,可於每次集中掃描封包中發送壓縮檔案。
在編碼建置程序內(例如分別於第四圖至第六圖中所述之編碼建置424、524或624),編碼建置器304將登錄資料組織為多維資料結構,其提供了在內容316的部分之間的關係資料。這對於集中掃描而言是特別有用的。又,在編碼建置程序內,編碼建置器304可識別及標記個別的集中掃描之間的關係。這對於掃描的批次處理(例如第八圖中的810)而言是特別有用的。
在一實例中,編碼建置器304可配置以於一執行緒上運行編碼建置程序,例如在客戶側應用程式303的前台執行緒上(例如第四圖至第六圖中分別所述之前台執行緒416、516與616)。在編碼建置程序內,經由執行緒,編碼建置器304可被配置以建置出該一或多個區段的至少一部分及/或該一或多個識別固定點的階層表示方式。
又,在一實例中,使用者互動追蹤器312可被配置以於執行緒上運行使用者互動追蹤程序(例如第四圖至第六圖中分別說明的使用者互動追蹤426、526或626),例如在客戶側應用程式303的前台執行緒上(例 如第四圖至第六圖中分別所述之前台執行緒416、516與616)。在使用者互動追蹤程序內,經由執行緒,使用者互動追蹤器312可被配置以追蹤對於在內容316的一或多個區段的至少一部分內使用者介面元件之使用者互動。使用者互動也可經由內容316的結構及/或組織而被追蹤,例如經由一電子屬性的文件物件模型(DOM)。使用者互動也可經由該一或多個區段的至少一部分及/或該一或多個識別固定點的階層表示方式而被追蹤,例如由編碼建置器304所建置之階層表示方式。在使用者互動追蹤程序內,經由執行緒,使用者互動追蹤器312也可被配置以從追蹤的使用者互動中得到使用者互動資料。舉例而言,所得到的使用者互動資料可包含一或多個連結視圖、頁面視圖、對電子屬性縮圖之點擊以及停留時間。
使用者互動資料也可包含捲動一或多個頁面視圖或捲動一單一頁面視圖的一或多個區段的各種實例。舉例而言,使用者互動資料可包含一使用者已經在客戶側應用程式畫面中捲動的頁面視圖量。在一實例中,一使用者已經在客戶側應用程式畫面中捲動的頁面視圖量可根據在一方向中的捲動畫素量以及該方向中的畫面長度而決定。舉例而言,若含有一第一頁面視圖的畫面高度為100個畫素,且使用者已經向下捲動200個畫素,則該使用者已經瀏覽了包括第一頁面視圖的三個頁面視圖。
又,在一實例中,內容追蹤器320可被配置以於執行緒上運行內容追蹤程序(例如第四圖至第六圖中分別說明的內容追蹤428、528、628),例如在客戶側應用程式303的前台執行緒上(例如第四圖至第六圖中分別所述之前台執行緒416、516與616)。在內容追蹤程序內,經由執行緒,內容追蹤器320可被配置以追蹤內容316中的更新,無論更新是否是在未刷 新頁面視圖下或在未對客戶裝置301及/或客戶側應用程式303外部的裝置產生請求下進行(除了對內容緩存伺服器產生請求之外,例如內容緩存伺服器116)。舉例而言,在第二圖的頁面視圖242中,最初出現的串流224c內的內容(例如內容項目226c、228c與230c)是在未刷新頁面視圖242或未對內容緩存伺服器以外的客戶側應用程式303或客戶裝置301外部的裝置產生請求下進行更新;且該更新係由內容追蹤器320予以追蹤。
對內容316的更新也包含對於內容316的動態或靜態改變或對頁面視圖的改變或對與內容316無關的一媒體播放器內的內容的改變。舉例而言,在第二圖的頁面視圖242中,在使用者以捲動軸(scrollbar)240a進行互動之後所出現的串流224c內的內容(例如內容項目232c與234c)係與內容316無關,其係來自與內容316不同的來源且/或不與內容316相關聯,除了其係連結至串流224c以外;且在使用者以捲動軸240a進行互動之後所出現的內容係由內容追蹤器320予以追蹤。在使用者與客戶側應用程式303互動之後所出現的新內容,例如第二圖的內容項目232c與234c(其可被內容追蹤器320追蹤),可在新內容呈現時或是在呈現或甚至請求這類內容之前被儲存於客戶側應用程式或客戶裝置301的緩存內時被追蹤。
也可經由內容的結構及/或組織來追蹤對內容316的更新,例如經由一電子屬性的DOM。也可經由該一或多個區段的至少一部分及/或該一或多個識別固定點的階層表示方式來追蹤對內容316的更新,例如由編碼建置器304所建置之階層表示方式。在內容追蹤程序內,經由執行緒,內容追蹤器320也可被配置以從所追蹤之內容316的更新得到內容更新資料。
在一實例中,序列化裝置306可被配置以於執行緒上運行資 料序列化程序(例如第四圖至第六圖中分別說明的序列化430、530、630),例如在客戶側應用程式303的背景執行緒上(例如第四圖至第六圖中分別所述之背景執行緒418、518與618)。在另一實例中,序列化裝置306可配置以於客戶側應用程式303的前台執行緒上運行資料序列化程序。
經由執行緒,在序列程序內之序列化裝置306可被配置以序列化從該一或多個區段與該一或多個識別固定點的階層表示方式所得出的資料。經由執行緒,在序列程序內之序列化裝置306也可被配置為對從使用者互動資料所得出的資料進行序列化。
經由執行緒,在序列程序內之序列化裝置306也可被配置以將序列化資料儲存在記憶體中,例如一本地儲存裝置或一本地緩存。在一實例中,記憶體可為客戶裝置301的記憶體的一部分,例如其為第十圖的記憶體1010的一部分。對於客戶側應用程式303、管理客戶側應用程式303的操作系統及/或管理客戶側應用程式303的裝置而言,記憶體可在本地。序列化程序包含將內容316的資料結構及/或物件狀態轉譯為可被儲存的格式。儲存運作可包含轉譯內容316的資料結構及/或物件狀態以供儲存於記憶體、檔案及/或記憶體之緩衝器及/或供於網路頻道間傳送之用,例如經由封包。
序列化資料可於與進行序列化之相同電腦環境中,或在與序列化相容的另一環境中被後續重建。序列化可用以產生和與內容316相關聯之原始物件(例如由編碼建置器304進行最佳化之物件)語義上相同的複製品。
可利用對被序列化的原始資料之修改來對複雜的物件(例如有複雜階層且可產生廣泛參考用途者)進行序列化。舉例而言,當序列化 包含物件導向之物件的序列化時,物件的相關方法可不包含難以區分連結之相關方法。
為了維持隱私性與機密性,序列化可使用同時加密資料的演算法。一經加密、序列化及壓縮,通訊介面310所發送的資料即是安全的;且一旦該資料被其希望目的地安全接收,該資料即可部分解密。加密與解密可經由與本文所述特徵相容之任何已知或可預見的技術來實施。
又,序列化之格式是彈性的。舉例而言,序列化裝置306係經由利用人為可讀文字傳送資料物件的序列化格式來實施至少部分的序列化,其中所述資料物件包括屬性-數值對(例如JAVASCRIPT OBJECT NOTATION(JSON))。其他格式可包含在標準化電腦程式化語言間所普遍共用的編碼。又,可使用更密實的選項,例如使用二位元XML。也可以使用標準XML。JSON會是有利的選擇,因為其像標準XML是人為可讀的,而且又輕量如二位元XML。JSON是以JAVASCRIPT語法及/或其他編程語言為基礎。
JSON可為XML的更輕量明文替代方式,其也是網路應用中之客戶-伺服器通訊所常用。JSON可以JavaScript語法及/或其他編程語言為基礎。又,「還有另一種製標語言」(YAML)或類似語言係可用於序列化。YAML包含可對標準JSON增進序列化讀取能力與密實性的特徵。序列化格式的特徵可包含標註資料類型的概念、支援非階層式資料結構、對帶有識別符結構資料之選擇及標量資料引用的形式。此外(或替代地),可於序列化中使用一屬性清單格式。又,也可使用二位元序列化。
至少對序列化程序而言,可使用物件導向之編程語言,例如 Ruby、Smalltalk、Python、PHP、物件C、Java以及.NET語言。又,可使用指令檔或小程式來至少指示序列化程序。又,可針對序列化增加語言庫來支援缺少序列化原生支援的語言。
在一實例中,編碼壓縮器308可配置以於執行緒上運行編碼壓縮程序(例如第四圖至第六圖中分別說明的編碼壓縮432、532、632),例如在客戶側應用程式303的背景執行緒上(例如第四圖至第六圖中分別所述之背景執行緒418、518與618)。經由執行緒,在壓縮程序內之編碼壓縮器308可被配置以壓縮由序列化裝置306所序列化及/或儲存的資料。
在壓縮程序內,編碼壓縮器308也配置以對自序列化裝置306所接收的資料進行編碼。舉例而言,編碼壓縮器308係使用可表示ASCII字串格式中的二位元資料的編碼方式,其是藉由將資料轉譯為基數-64的表示方式而進行,例如將資料編碼為Base64。
編碼壓縮器308所執行的資料壓縮可包含原始資料壓縮、來源編碼的壓縮及/或位元率的減少。位元率的減少包含以比原始資料少的位元來編碼資料。壓縮也可為有損或是無損方式。無損壓縮是藉由識別及減少原始資料中的冗餘而減少位元,因此在理想的無損壓縮中是無資料損失的。在一實例中,有損壓縮可藉由識別出不需要的資料(例如重複的資料)並且移除不需要的資料來減少位元。編碼壓縮器306也可使用壓縮偵測。壓縮偵測包括原始資料的採樣,然後壓縮採樣的資料。採樣可根據其目的與分配給採樣的資源而定。
在客戶側或伺服器側上的壓縮配置器328可被配置為人為或自動調整編碼壓縮器308的空間-時間複雜度折衷方式。這類配置可於壓縮程 序內進行。壓縮專用的資源量與壓縮速率的關係也可由壓縮配置器328予以調整。配置器328可針對壓縮程度、在有損資料壓縮中所產生的變形量以及壓縮與解壓縮資料所需的計算資源來配置層級。
在一實例中,在壓縮程序內之編碼壓縮器308可壓縮資料,例如客戶側應用程式資料、內容資料以及使用者互動資料,使得壓縮的資料可與客戶側應用程式303相關之緩存模型層及資料層的運作相容。
至少部分的緩存模型層與資料層可於與管理客戶側應用程式303的裝置通訊之一伺服器上受管理。管理模型層與資料層的緩存部分之伺服器係可作用為客戶側應用程式303的緩存。該伺服器也可管理與客戶側應用程式303相關聯的緩存層的多重疊代,因此在管理客戶側應用程式303的不同實例的不同裝置間會有實質上獨立的客戶側應用程式303的每一通信期之緩存。除了本文所述的上傳程序以外,此一伺服器所提供的緩存對於在網路(例如網際網路)上的內容傳送而言可產生良好的效率。
在一實例中,通訊介面310可配置以於執行緒上運行通訊傳送程序(例如第四圖至第六圖中分別說明的通訊傳送434、534、634),例如在客戶側應用程式303的前台執行緒上(例如第四圖至第六圖中分別所述之前台執行緒416、516與616)。在通訊傳送程序內,經由執行緒,通訊介面310可被配置以對一伺服器(例如帳戶伺服器102及/或分析伺服器118)傳送由編碼壓縮器308所壓縮的資料。通訊介面310可配置以對伺服器同時傳送壓縮資料與未壓縮資料。這類傳送可為非同步或同步或其組合。
在一實例中,經由執行緒,在通訊程序內之通訊介面可配置以將壓縮資料傳送至一資料庫314(或仿效一相關資料庫之網路服務),例 如HTTP將壓縮資料公告至與系統300、客戶側應用程式303、內容316、帳戶系統(例如帳戶伺服器102與帳戶資料庫104)及/或分析系統(例如分析伺服器118與分析資料庫119)相關聯的一或多個資料庫表。資料庫314可於一或多個伺服器上被管理。在一實例中,資料庫314可由內容緩存伺服器116、分析伺服器118及/或帳戶伺服器102管理。又,分析資料庫119、帳戶資料庫104及/或與內容緩存伺服器116及/或內容伺服器112相關聯的資料庫係可包含資料庫314的態樣。又,資料庫314的態樣係可於管理客戶側應用程式303的客戶裝置上被本地儲存或執行。又,資料庫314可包含帳戶資料庫104及/或分析資料庫119,且可通訊耦接至帳戶伺服器102及/或分析伺服器118。
在一實例中,與資料庫314相關聯的構件或是其部分係可對編碼進行解碼、對壓縮進行解壓縮並登錄經解碼及經解壓縮的資料。經解碼及解壓縮的資料可接著被一分析系統所用,例如分析伺服器118與分析資料庫119所提供的系統。
在使用HTTP公告的實例中,該公告可使用AJAX或其他格式,以於各種平台間傳送網路應用程式資訊。在一實例中,通訊介面310可傳送跨網域通訊,例如跨網域HTTP公告。在這個實例中,編碼建置器304可使用憑證標準,例如若客戶側應用程式303支援CORS的話,即可使用跨來源資源共享(CORS)。或者是,為支援跨網域通訊,編碼建置器304或該系統300的另一態樣會使用隱藏標籤。舉例而言,網路瀏覽器可使用隱藏的<form>標籤,其係標定出個別的隱藏<iframe>標籤。
關於系統300的執行緒,通訊介面310的執行緒係客戶側應用 程式303或運行該客戶側應用程式303的操作系統的一前台執行緒。編碼掃描器302、編碼建置器304及/或追蹤器312與320的執行緒是客戶側應用程式303或運行該客戶側應用程式303的操作系統的一前台執行緒。序列化裝置306與編碼壓縮器308的執行緒為客戶側應用程式303或運行該客戶側應用程式303的操作系統的一背景執行緒。或,序列化裝置306的執行緒是客戶側應用程式303或運行該客戶側應用程式303的操作系統的一前台執行緒。與系統300相關聯的所有執行緒之任意組合都可為一或多個執行緒,舉例而言,所有的背景程序都在一個執行緒上運行,而所有的前台程序都在另一執行緒上運行。又,每一個程序都具有專用的執行緒。
在一例示系統300中,系統300係運行編碼掃描器302、編碼建置器304、追蹤器312與320以及通訊介面310的運作之一或多個前台執行緒,並運行序列化裝置306與編碼壓縮器308之一或多個背景執行緒。或,系統300係運行編碼掃描器302、編碼建置器304、追蹤器312與320、序列化裝置306以及通訊介面310的運作之一或多個前台執行緒,並運行編碼壓縮器308的運作之一或多個背景執行緒。
又,舉例而言,系統300係運行通訊介面310的運作之一或多個前台執行緒,並運行編碼掃描器302、編碼建置器304、追蹤器312與320、序列化裝置306及編碼壓縮器308之一或多個背景執行緒。前述僅為執行緒的三種例示排列。且還有以背景與前台執行緒進行系統300的運作之其他有用排列變化。
系統300的每一態樣係透過至少一個解釋電腦編程語言(例如JAVASCRIPT或PHP)或一物件導向之電腦語言(例如DART)來實施。 系統300的這些態樣係經由系統的每一個構件專用的個別小程式及/或指令檔分別地或結合地實施。系統300的每一個構件(例如編碼壓縮器)係可由一網路工作者實施。
網路工作者,如全球資訊網協會(W3C)與網頁超文字技術工作小組(WHATWG)所定義,係從一HTML頁面所執行的JavaScript指令檔,其係獨立於已經從相同HTML頁面執行的其他使用者介面指令檔而於背景中運行,可見於網址:http://en.wikipedia.org/wiki/Web_worker。網路工作者可為從客戶側應用程式所執行的任何指令檔或小程式,其於背景中運行,獨立於在前台中運行的客戶側應用程式的其他指令檔、小程式或內建構件。網路工作者包含沒有被使用者介面指令檔(回應於點擊或其他使用者互動的指令檔)中斷的長期運行的指令檔。這允許系統300的構件的處理器密集任務可相對不影響例如客戶側應用程式303的使用者介面運作。又,網路工作者會限制對資料封包的傳送任務之干擾。在一個實例中,網路工作者會管理前台瀏覽器執行緒與背景執行緒(例如背景JAVASCRIPT執行緒)的同時執行。又,網路工作者可為客戶側應用程式的背景執行緒所專用。
在一個實例中,除了編碼壓縮以外,客戶側應用程式303的背景程序以及本文所述之程序係允許單一執行緒執行,因此系統的各種程序係以一預定順序進行,而壓縮會具有專用的執行緒。因為此順序是預定的,且要處理的資料量可預先決定,因此掃描、建置、追蹤、序列化與壓縮的時序是可被預測的,且此預測可被通訊介面310用來協調封包傳送時序。
網路工作者係系統300的其中一個程序所專用(例如壓縮),或為任何程序組合所共享(例如序列化與壓縮)。當網路工作者運行於一背景執行緒時,其不具有對內容316的結構與組織(例如一電子屬性的DOM)之直接存取。在一實例中,當網路工作者在背景中運行時,係利用發訊(例如經由SOAP進行發訊)來與DOM通訊。在一實例中,掃描及/或建置程序可於一批次程序中被調流,因此每一訊息會有更多資訊可被傳送至網路工作者。舉例而言,利用調流,每一訊息中會有更多的資訊從運行掃描及/或建置的執行緒傳送至運行序列化及/或壓縮的執行緒。在一實例中,訊息是系統300的態樣,其經序列化及壓縮。訊息可包含來自一般性掃描程序(例如編碼掃描422或522)或來自調流掃描程序(例如調流掃描622)的資料。
系統300可包含在第三圖中所未說明的數種其他特徵,其可透過系統300的一或多個前述構件來執行。
系統300可包含一增加模組裝置,用於增加追蹤的頁面視圖的區段或模組。系統300也可包含一移除模組裝置,用於移除追蹤的頁面視圖的區段或模組。增加模組裝置可配置以接收一字串陣列、一單一字串或一多維映射物件,其表示追蹤的區段或模組之元件識別。移除模組裝置也可同樣接收,但是要識別不追蹤的區段與模組。又,增加模組裝置可配置以接收一整體上追蹤或不追蹤頁面視圖之指令。至少部分的增加模組裝置與移除模組裝置可由編碼掃描器302來執行,且增加模組裝置與移除模組裝置可動態改變地、分別動態地增加或移除追蹤頁面視圖的區段或模組。這在內容區段或模組被動態地加至一頁面視圖或自該頁面視圖移除、而無任何頁面視圖刷新時是特別有用的。
系統300可包含一刷新模組裝置,用於刷新頁面視圖的區段或模組。刷新模組裝置可配置以接收一字串陣列、一單一字串、一多維映射物件,其表示要刷新的區段或模組之元件識別。又,刷新模組裝置可配置以連同一個別頁面視圖識別登錄任何刷新的模組或區段。又,當從一先前掃描起就沒有新模組或區段已經被加入或移除時,刷新模組裝置可配置以不運行。可執行一個別的裝置來確認一模組或區段是否正被追蹤,然後通知刷新者。又,刷新模組可被配置以擷取一頁面視圖中的最新更新資料以及先前未被觀看的資料。
至少部分的刷新模組裝置可由編碼掃描器302或編碼建置器304來執行,而且刷新模組裝置可動態改變地動態刷新頁面視圖的區段或模組。這在內容區段與模組被動態增加至一頁面視圖或自其移除、而無任何刷新的頁面視圖時是特別有用的。在此概念中,整個頁面視圖都沒有被刷新,但是可個別地刷新區段與模組。在一實例中,整個頁面視圖可被刷新。又,對頁面視圖、區段與模組的刷新係可在系統300中進行,無須向在管理客戶側應用程式303的裝置外部的裝置請求刷新。
系統300可包含一增加事件訊號裝置,用於示標一選擇事件,例如對一頁面視圖的一特定點擊事件。增加事件訊號裝置可配置以接收一字串,其可識別所選擇的事件。該裝置也可被配置以接收包含金鑰數值對的一物件,以增加與一個別頁面視圖或所選事件相關聯的參數。該裝置也可接收所選事件的結果之識別。所選事件的結果可由例如使用者互動追蹤器312進行登錄。這種登錄可被編碼建置器304用以映射頁面視圖的結果。這些映射結果可為該一或多個區段的至少一部分及/或該一或多個識別 固定點之階層表示方式的一部分。至少部分的增加事件訊號裝置可以由使用者互動追蹤器掃描器312來執行,且該裝置可動態改變地動態示標一特定事件。這在對一頁面視圖動態增加點擊機會但卻無任何刷新頁面視圖時是特別有用的。
系統300可包含一增加點擊事件訊號裝置,用於示標一選擇的點擊事件。增加點擊事件訊號裝置可配置以接收:例如,可識別與該點擊事件相關聯頁面視圖區段之一字串、描述與該點擊事件相關聯連結之一字串以及代表該連結相對於區段內其他連結的位置之一數值。增加點擊事件訊號裝置也可接收金鑰/數值對,其可連同點擊事件示標而進行傳送。此裝置也可接收所選點擊事件的結果之一識別。所選點擊事件的結果可由例如使用者互動追蹤器312進行登錄。這種登錄可被編碼建置器304用以映射頁面視圖的結果。這些映射結果可為該一或多個區段的至少一部分及/或該一或多個識別固定點之階層表示方式的一部分。至少部分的增加點擊事件訊號裝置可以由使用者互動追蹤器掃描器312來執行,且該裝置可動態改變地動態示標一特定點擊事件。這在對一頁面視圖動態增加點擊機會、但無任何刷新頁面視圖時是特別有用的。又,該裝置在系統300的其他裝置與特徵無法追蹤存在於頁面視圖上的連結時會是特別有用的。舉例而言,難以追蹤連結一般是發生在編碼區段內或與其相關聯(例如JavaScript處理程序),其用於中斷(例如防止不想要的事件傳播之中斷)。
系統300可包含一增加頁面視圖訊號裝置,用於示標一選擇頁面視圖。該增加頁面視圖訊號裝置可配置以接收含有金鑰數值對的一物件,以增加與一個別頁面視圖相關聯的參數。舉例而言,這個裝置可修飾 與該頁面視圖的一通信期識別符相關聯的頁面視圖參數。舉例而言,一或多個頁面視圖參數可識別出是否以分析學以及如何以分析學來分析一頁面視圖。至少部分的增加頁面視圖訊號裝置可由編碼掃描器302及/或編碼建置器304所執行,且該裝置可動態改變地動態示標一頁面視圖。當客戶側應用程式303沒有請求新頁面視圖、也沒有重新請求先前追蹤的頁面視圖時,這對於要將頁面視圖動態地加至追蹤的頁面視圖是特別有用的。
第四圖至第六圖說明了可執行資料的客戶側壓縮以供傳送至一伺服器的例示系統(例如第三圖的系統300)所執行的例示運作。
在第四圖至第六圖中,編碼掃描器302可在個別的執行緒416、516、616中執行編碼掃描422、522、622;且這些掃描與最終的個別編碼壓縮432、532、632有關。
編碼建置器304可於個別執行緒416、516、616中執行編碼建置424、524、624;且這些建置會以個別的掃描422、522、622為基礎。
使用者互動追蹤器312可於個別執行緒416、516、616中執行使用者互動追蹤426、526、626;且這些追蹤是以個別的建置424、524、624及/或個別的內容追蹤428、528、628為基礎。
內容追蹤器320可於個別執行緒中416、516、616中執行內容追蹤428、528、628;且這些追蹤是以個別的建置424、524、624及/或個別的使用者互動追蹤426、526、626為基礎。
序列化裝置306可於個別執行緒中418、518、618中執行資料序列化430、530、630;且這些序列化可以個別的建置424、524、624、個別的使用者互動追蹤426、526、626及/或個別的內容追蹤428、528、628為 基礎。
編碼壓縮器308可於個別的第六執行緒中418、518、618中執行編碼壓縮432、532、632;且這些壓縮是以個別的序列化430、530、630為基礎。
通訊介面310可於個別執行緒中416、516、616中執行通訊程序434、534、634。這些通訊程序可包含發送壓縮資料至適當接收者,例如帳戶伺服器與分析伺服器。
未說明的是可僅在壓縮432、532、632之前先進行編碼程序。編碼程序係於上文中關於第三圖的說明部分中進行說明。編碼程序可於前台執行緒416、516或616上運行,或於背景執行緒416、518或618上運行,端視於系統300的配置而定。在一例示配置中,編碼程序是於背景執行緒上運行,其分別與壓縮432、532、632同步。
第四圖至第六圖中所述的每一個操作都可以在一或多個背景執行緒及/或一或多個前台執行緒上執行。同樣的,一前台執行緒或一背景執行緒可以共享第四圖至第六圖中所述的多數個操作。
在此所述之該些執行緒可以同步及/或非同步執行。舉例而言,第四圖至第六圖中之該些執行緒係以同步執行方式說明,因為每一執行緒都包含至少一操作,該至少一操作則與另一執行緒的至少一操作有關。舉例而言,在420、520或620,該系統300可以在個別第一時期440a、540a或640a接收一頁面視圖。接著,在個別第二時期440b、540b與640b,該編碼掃瞄器302可以掃瞄至少部分的接收頁面視圖。因為該頁面視圖的掃瞄與接收該頁面視圖有關,因此此兩操作為同步處理。像是使用者互動追蹤 426、526與626及內容追蹤428、528與628的處理可根據該使用者互動追蹤器312與該內容追蹤器320的個別配置而為同步及/或非同步。在第四圖至第六圖中,這些操作係同步。當伺服器接收壓縮資料係預期於一定的時間段中接收該壓縮資料時,將這些操作同步化會是有利的。
第七圖繪示一或多個執行緒702,其可以針對一頁面視圖的第一、第二與第三區段執行第四圖至第六圖中的操作。該一或多個執行緒704係與該(等)執行緒702同步,因為該(等)執行緒704具有至少一個與該(等)執行緒702之一操作有關的操作。該一或多個執行緒706對於該(等)執行緒702及704則為非同步。一頁面視圖的區段數量則與可利用的資源有關,每一區段都可以具有其本身的執行緒。在所述實例中,因為資源的限制,多數區段可以具有藉由專用執行緒進行接收操作的不同優先權。
第七圖也繪示一或多個執行緒708,其可以執行與該頁面視圖關聯的多數操作無關的操作,像是客戶側應用程式安全性操作、與主管操作系統上執行之多數其他應用程式的資源共享操作以及與該頁面視圖無關的緩存操作。該一或多個執行緒708對於與該頁面視圖專用的一或多個執行緒(例如,一或多個執行緒702-706)而言為非同步。
回頭參照第四圖至第六圖,該些時期440a-440e、540a-540e與640a-640e代表非重疊時期。跨越第四圖至第六圖中該些時期之每一個時期中的單一時期的操作可以不與跨越其他時期多數操作的單一時期重疊,而跨越多於單一時期的操作則可以與那些時期中所存在的其他操作重疊。
回頭參照第四圖,在420,該系統300可於第一時期440a中,投入資源以接收與一頁面視圖對應的初始資料。在442,該編碼掃瞄器302 可於第二時期440b中掃瞄該頁面視圖經辨別欲被掃瞄的一或多個區段。在424,編碼建置器304可建置一資料模型,其表示該頁面視圖的一或多個掃描區段。如本文所述,編碼建置424與編碼掃瞄422可以在相同時間時期內進行。舉例而言,在已經掃描了一第一區段之後也可於第一區段之資料模型正被建置時掃描一第二區段。除非被掃瞄,否則該頁面視圖的一項目可能不被包含於該建置資料模型之中。
在426,使用者互動追蹤器312可追蹤對於儲存在建置資料模型內的態樣的使用者互動。也可針對在428被追蹤的內容態樣而追蹤使用者互動,舉例而言,如果正追蹤字型的加粗,且因使用者互動而使字型變為加粗,則與該加粗字型相關聯的先前使用者互動即可被追蹤,無須返參建置資料模型。又,根據使用者互動追蹤器312的配置而定,特定的使用者互動也可被追蹤,無論它們是否與儲存在建置資料模型中的態樣有關。
在428,內容追蹤器320可追蹤與儲存在建置資料模型中的頁面視圖縮圖相關聯的內容態樣。也可針對在426追蹤的使用者互動來追蹤內容態樣,像是圖形格式態樣。舉例而言,若正在追蹤對於一超連結文字的點擊,且已知此一使用者互動使連結文字變成紅色,則在已經產生對超連結文字的點擊之後,可由推論來追蹤轉為紅色的文字。又,根據內容追蹤器320的配置而定,可追蹤特定的內容態樣,無論它們是否與建置資料模型中儲存的態樣相關聯。
在430,序列化裝置306可對自424之編碼建置、對自426之使用者互動追蹤及/或對自428之內容追蹤所得到的資料進行序列化。如第四圖所示,包含430之序列化的第三時期440c並不與包含掃描422、編碼建置424 及追蹤426與428的第二時期440b重疊。換言之,在第四圖的實例中,在為一或多個區段完成掃瞄、編碼建置與追蹤之前,在430將得自掃描422、編碼建置424及追蹤426與428,而與頁面視圖的該一或多個區段相關聯資料的序列化是不會進行的。
在432,該編碼壓縮器可壓縮在序列化430時被序列化的資料。由於壓縮432是發生在第四時期440d內,因此在完成個別序列化430之前是不會進行壓縮432的。在434,通訊介面310可傳送於壓縮432所壓縮的資料。由於壓縮資料的傳送434係於第五時期440e來進行,因此在個別壓縮432完成之前,是不會進行傳送434的。
在進行掃描422、建置424、追蹤426與428、序列化、壓縮與傳送期間,系統300可接收頁面視圖之更新資訊,並在440據以更新頁面視圖內的內容。然後在422,掃描更新的內容等等,並持續直到更新的內容以及與內容相關聯的互動在424-428被登錄、在430被序列化、在432被壓縮以及在434被傳送為止。
參照第五圖,在520,該系統300可以在第一時期540a中,投入資源以接收與一頁面視圖對應的初始資料。在552,該系統300可以在該些時期540b-540d中,投入資源以更新與該頁面視圖相關聯之緩存中該頁面視圖的內容。舉例而言,在該些時期540b-540d中,一緩存執行緒可專用於該頁面視圖緩存之中的內容更新。同樣的,在540,在該些時期540b-540d中可根據在552於緩存中更新的內容資訊,於該頁面視圖中更新內容。這些內容更新操作可在552該頁面視圖先前內容的編碼掃瞄、根據522的掃瞄於524進行個別編碼建置、在526及528的個別追蹤、在530的個別序列化以及 在532的個別壓縮時同時進行。同樣的,這些內容更新可以跨越該些時期540b-540d。
在522,該編碼掃瞄器302可於第二時期540b中掃瞄該頁面視圖經辨別欲被掃瞄的一或多個區段。這於552及540更新期間也可以進行。該些更新的掃瞄可於事後發生。
在524,編碼建置器304可建置一資料模型,其表示該頁面視圖的一或多個掃描區段。如本文所述,編碼建置524與編碼掃瞄522可以與在552及540更新的相同時間時期內進行。在已經掃描了一第一區段之後,也可於第一區段之資料模型正被建置時掃描一第二區段。該第二區段可以包含在552對該緩存的內容更新,或是在540對該實際頁面視圖的更新。一般而言,該頁面視圖的一項目直到被掃瞄為止否則可能不被包含於該建置資料模型之中,而無關於該項目是否為原始接收,或是該項目為一客戶側應用會話期間的更新。
在526,使用者互動追蹤器312可追蹤對於儲存在建置資料模型內的態樣的使用者互動。也可針對在528被追蹤的內容態樣而追蹤使用者互動,無論這些被追蹤的內容態樣是否被呈現或僅是被緩存。舉例而言,若在顯示器上或至少在緩存中正追蹤字型的加粗,且因使用者互動而使字型變為加粗,則與該加粗字型相關聯的先前使用者互動即可被追蹤,無須返參建置資料模型。又,根據使用者互動追蹤器312的配置而定,特定的使用者互動也可被追蹤,無論它們是否與儲存在建置資料模型中的態樣有關。
在528,內容追蹤器320可追蹤與儲存在建置資料模型中的頁面視圖態樣相關聯的內容態樣,無論在540之後這些內容是否被呈現或是僅 在552被緩存。也可針對在526追蹤的使用者互動來追蹤內容態樣,例如圖形格式態樣,無論這在540之後這些格式態樣是否被呈現或是僅在552被緩存。舉例而言,若正在追蹤對於一超連結文字的點擊,且已知此一使用者互動使連結文字變成紅色,則在已經產生對超連結文字的點擊之後,可由推論來追蹤轉為紅色的文字。又,根據內容追蹤器320的配置而定,可在540該頁面視圖更新處及/或在552該緩存更新處追蹤特定的內容態樣,無論它們是否與建置資料模型中儲存的態樣相關聯。
在530,序列化裝置306可對自524之編碼建置、對自526之使用者互動追蹤及/或對自528之內容追蹤所得到的資料進行序列化。如第五圖所示,包含530之序列化的第三時期540c並不與包含掃描522、編碼建置524及追蹤526與528的第二時期440b重疊。換言之,在第五圖的實例中,在為一或多個區段完成掃瞄、編碼建置與追蹤之前,在530將得自掃描522、編碼建置524及追蹤526與528,而與頁面視圖的該一或多個區段相關聯資料的序列化是不會進行的。
在532,該編碼壓縮器可壓縮在序列化530時被序列化的資料。由於壓縮532是發生在第四時期540d內,因此在完成個別序列化530之前是不會進行壓縮532的。在534,通訊介面310可傳送於壓縮532所壓縮的資料。由於壓縮資料的傳送534係於第五時期540e來進行,因此在個別壓縮532完成之前,是不會進行傳送534的。
如本文所述,在進行掃描522、建置524、追蹤526與528、序列化530、壓縮532與傳送534期間,系統300可接收頁面視圖之更新資訊,並在540於該實際頁面視圖處據以更新該頁面視圖內的內容,或在552更新 與該頁面視圖關聯之緩存中的內容。然後在522,更新的內容可被掃描等等並持續直到更新的內容以及與內容相關聯的互動在524-528被登錄、在530被序列化、在532被壓縮以及在534被傳送為止。
參照第六圖,在620,該系統300可以在第一時期640a中,投入資源以接收與一頁面視圖對應的初始資料。在662,該系統300可以在專用於進行該緩存中該頁面視圖內容更新的時期660中,投入資源以更新與該頁面視圖相關聯之緩存中該頁面視圖的內容。此緩存可為隊列緩存及/或堆疊緩存,並可位於伺服器上(例如該內容緩存伺服器116)。該時期660也可專用於將該些緩存項目傳送至調流掃瞄622及/或於640更新頁面圖式中的內容。專用於662處更新頁面視圖項目之中之緩存的時間時期,可以稱做為緩存時期660。
具有用於蒐集未來呈現內容的專用時期,對於調流掃瞄622而言特別有用。調流掃瞄622可以包含與該頁面視圖相關聯之資料的批次掃瞄,無論內容是否已呈現給一使用者或被隱藏於該緩存中。舉例而言,該調流掃瞄可以包含該頁面視圖DOM的批次掃瞄,因此舉例而言,代表該頁面視圖資料的一大部分,便能於一時間時期內掃瞄。由於提供代表該頁面視圖的大多數資料,因此舉例而言,可以在624進行更有效率的建置。此調流掃瞄因為相同理由而能於626及628進行更有效率的追蹤。因為相同理由,序列化630與在632的壓縮可以特別的更有效率。在所示實例中,由於序列化630與壓縮632具有一或多個專用執行緒618,其能與該(等)前台執行緒616同時執行,因此欲被序列化與壓縮的資料尺寸並不影響該頁面視圖的呈現與展示。因此,序列化630與壓縮632可以提供大量的壓縮資料以同 時傳送至伺服器,例如是傳送至分析伺服器。這對於多數複雜的頁面視圖而言特別有用。
又,由於該緩存時期660與該專用緩存更新662,可以非常快的速率進行呈現視圖的更新緩存。此加速能將內容串流最佳化,特別是具有無窮項目序列的串流,例如參照與第二圖及第九圖中繪示的無窮項目序列。一旦該項目已經被緩存,便可以更快速的將每一項目呈現至螢幕。此外,隨著更快的將更多項目進行緩存,該些緩存項目更可能可以趕上使用者捲動過多數新項目的速度。對此處理投入更多資源,可以呈現更加無縫的串流。
利用內容的加速,項目串流便像是無窮且無縫的。與自一內容來源首次請求一項目並接著呈現該項目相比之下,在呈現該項目之前將其緩存,將加快該項目的呈現。換言之,緩存可做為隊列緩存。又,藉由專用的緩存時期660至緩存更新662等,該系統300的執行緒與操作於該緩存的更新時便不發生干擾與資源的競爭。此外,此處理可以具有其專用執行緒(並未繪示於第六圖中)。因此緩存可被快速更新,而相較於並不以相同方式快速更新其頁面視圖項目緩存的系統而言,關聯的內容串流便能以更加無窮且無縫的方式呈現。
又,因為在662將新項目的緩存進行加速,該編碼掃瞄到序列化、壓縮及送出與該些新項目相關聯的壓縮資料便可能在一給定時間時期內更常發生。因此,接收帳戶伺服器或分析伺服器可更早受益於緩存新項目的資訊。然後這些伺服器可以提供回饋至內容來源或緩存(舉例而言,於一伺服器上主管的緩存),以提供頁面視圖新的內容項目。因此,便能更 佳的針對該些新項目(例如於一串流中的新項目)進行處理。
對於第六圖中所述之實例,於該些時期640b-640e中,可根據在652的一般緩存處理或在662處的加速緩存處理,於640進行該頁面圖式之中的內容更新。在652與640的內容更新操作,可以在622的頁面視圖先前內容調流編碼掃瞄進行期間、在624根據622調流掃瞄的個別編碼建置期間、在626與628的個別追蹤期間、在630的個別序列化期間以及在632的個別壓縮期間進行。
在622,在一例示情況中,編碼掃描器302可於第二時期640b內掃描經識別為待掃描之頁面視圖區段。即使是頁面視圖很複雜且具有內容串流時也是可以進行的。調流掃描622可於在652與640之更新期間且為就在之前接收的內容更新(例如從在662之加速緩存更新所得到的內容更新)、在652的正常緩存更新及/或在640的顯示項目更新(在最新接收的內容更新之前所立即接收者)而進行。系統300可配置以運行調流掃描622,而不被配置以運行加速緩存662。由於正常緩存652及/或加速緩存之故,調流掃描662可等待直到已經緩存到臨界數量的資料為止。又,在一例示配置中,調流掃描622可等到已經顯示及/或緩存到與頁面視圖相關聯的資料時再開始。又,在622之掃描可經由例如第八圖所述之運作而進行。
在624,編碼建置器304可建置一資料模型,其表示該頁面視圖的一或多個掃描區段,包括與例如在662、652及/或640的運作所得更新相關聯的區段。如本文所述,編碼建置624與編碼掃描622可於與在652和640之更新相同的時期內進行。又,即使有調流掃描,在已經掃描了一第一區段之後,也可於第一區段之資料模型正被建置時掃描一第二區段。然而, 在一個區段內的建置仍與該區段的調流掃描同步。有鑑於此,第二區段可包含於與第一區段相關聯的編碼掃描與建置期間之在662的對於緩存之加速內容更新、在652的對於緩存之一般性更新或是在640的對於實際頁面視圖的更新。
在626,使用者互動追蹤器312可追蹤對於儲存在建置資料模型內的態樣的使用者互動。也可針對在628被追蹤的內容態樣而追蹤使用者互動,無論這些被追蹤的內容態樣是否被呈現或是僅透過調流緩存更新662或正常緩存更新652而被緩存。舉例而言,若在顯示器上或至少在緩存中正追蹤字型的加粗,且因使用者互動而使字型變為加粗,則與該加粗字型相關聯的先前使用者互動即可被追蹤,無須返參建置資料模型。又,根據使用者互動追蹤器312的配置而定,特定的使用者互動也可被追蹤,無論它們是否與儲存在建置資料模型中的態樣有關。
在628,內容追蹤器320可追蹤與儲存在建置資料模型中的頁面視圖縮圖相關聯的內容態樣,無論在640之後這些內容是否被呈現或是僅透過調流緩存更新662或正常緩存更新652而被緩存。也可針對在626追蹤的使用者互動來追蹤內容態樣(例如圖形格式態樣),無論這在640之後這些格式態樣是否被呈現或是在652或在662被緩存。舉例而言,若對於一超連結文字的點擊正在被追蹤,且已知此一使用者互動使連結文字變成紅色,則在已經產生對超連結文字的點擊之後,可由推論來追蹤轉為紅色的文字。又,根據內容追蹤器320的配置而定,可在640於頁面視圖更新時、在652之更新緩存時或是在662之調流緩存更新的更新時追蹤特定的內容態樣,無論它們是否與建置資料模型中儲存的態樣相關聯。
在630,序列化裝置306可對自624之編碼建置、對自626之使用者互動追蹤及/或對自628之內容追蹤所得到的資料進行序列化。如第六圖所示,包含630之序列化的第三時期640c並不與包含掃描622、編碼建置624及追蹤626與628的第二時期640b重疊,也不與緩存時期660重疊。換言之,在第六圖的實例中,在為一或多個區段完成個別緩存、個別掃描、個別編碼建置及個別追蹤之前,在630的與頁面視圖的該一或多個區段相關聯資料(得自掃描622、編碼建置624及追蹤626與628)的序列化是不會進行的。
在632,編碼壓縮器可壓縮在序列化630時被序列化的資料。由於壓縮632是發生在第四時期640d內,因此在完成個別序列化630之前是不會進行壓縮632的。在634,通訊介面310可傳送於壓縮632所壓縮的資料。由於壓縮資料的傳送634是以第五時期640e來進行,因此在個別壓縮632完成之前,是不會進行傳送634的。
如本文所述,在進行掃描622、編碼建置624、追蹤626與628、序列化630、壓縮632與傳送634期間,系統300可接收頁面視圖之更新資訊,並據以於實際頁面視圖下更新頁面視圖內的內容(在640),或更新在與頁面視圖相關聯的緩存內的內容(在652或在662)。然後在622,掃描更新的內容,並繼續直到更新的內容以及與內容相關聯的互動被登錄(在624-628)、序列化(在630)、壓縮(在632)以及傳送(在634)為止。
第八圖說明了由可經由在壓縮之前批次處理掃描資料而調流資料之客戶側壓縮以供傳送至一伺服器(例如第三圖的系統300)的例示系統所執行的例示運作。
舉例而言,在802,系統300可接收一客戶側應用程式的通信 期中與一開始呈現的頁面視圖相關聯的資料。此第一頁面視圖可包含至少一個內容串流區段。在804,系統可接著接收與其他內容相關聯的額外資料,以於該至少一個內容串流區段中串流傳送。初始內容與另外的內容可於客戶側應用程式的通信期內被接收。初始內容與另外的內容包含要呈現的內容及/或對於要呈現的內容的連結。額外資料可代表在該至少一個內容串流區段的一或多個額外視圖中所要顯示的額外內容。初始資料可代表要在該至少一個內容串流區段的初始視圖中顯示的初始內容。又,在806,在處理之前所接收的資料可被儲存於一遠端緩存中(例如內容緩存伺服器116的緩存),或是儲存在一本地緩存中,例如與由主管客戶側應用程式的客戶裝置所管理的客戶側應用程式相關之緩存。
額外內容可繼續被接收,直到達到該至少一串流區段之緩存資料臨界量為止。在808。系統300可確認是否已經達到緩存臨界量。儲存在緩存中的資料臨界量可為預先決定,且由最後接收壓縮形式資料的伺服器所配置。若確認尚未達到該臨界值,則該系統會繼續接收額外資料(在806)。
在810,由於所接收的額外資料符合緩存臨界值,針對該至少一個內容串流區段,編碼掃描器302會經由一批次程序而對至少已緩存的初始資料及已緩存的額外資料進行掃描。一旦執行了批次程序(在810),即自緩存清除資料(在820),且該系統會接著繼續接收更多資料(在806)。初始資料與額外資料可為與內容及/或對內容之超連結相關聯的資料。
或,頁面視圖之任何接收資料都可被排入佇列以由編碼掃描器進行掃描,且編碼掃描器可持續進行批次程序掃描該資料,直到達到掃 描之臨界資料量為止。在一替代實例中,每批次的掃描量的限制為在掃描程序期間,而非在掃描程序之前(例如於相關緩存的追蹤)。
在812,編碼建置器304可根據在810經由批次程序之掃描來建置編碼。在814,所建置的編碼可被序列化。在816,經序列化的編碼可被壓縮,然後在818,被壓縮的編碼可被傳送至一伺服器(例如分析伺服器118)。
第九圖說明了由例示系統所執行的例示運作,所述例示系統可呈現一頁面視圖,其顯現出串流傳送無限的無縫內容量,並可執行與該無縫內容相關聯的資料之客戶側壓縮以供傳送至伺服器(例如第三圖的系統300)。又,在一實例中,貌似無限內容串流的客戶側壓縮係可由第八圖所示運作予以最佳化。
該貌似無限內容串流可開始於902,於客戶裝置301的顯示裝置上顯示頁面視圖。頁面視圖在其最初呈現中係可包含看似無限的串流傳送項目的至少一個區段。在904,與該頁面視圖相關聯及/或包含於其中的一使用者介面可接收至少一個使用者互動。頁面視圖的初始顯示與使用者互動係發生於頁面視圖的通信期內。在906,可回應於使用者互動,於具有至少一個新內容項目的區段處更新頁面視圖。此更新也可發生於頁面視圖的通信期內。例如,新內容項目可得自與一區段相關聯之佇列中的連結。佇列可由一伺服器(例如內容緩存伺服器116)予以管理。頁面視圖可在每次於頁面視圖通信期內接收到與該區段相關聯的新的使用者互動時重複更新具有新內容項目之區段。這可發生直到沒有新內容項目存在該區段之佇列中為止。對於頁面視圖或一個別網路屬性(例如整個網站)而言,佇列也 是普遍的。在這些更新期間,系統300可在新的內容項目出現於區段、佇列或與佇列或區段相關聯的緩存中時追蹤它們。在一實例中,係使用一佇列及/或堆疊來儲存即將到來的內容。
新內容項目的追蹤可包含由系統300的構件所執行之運作。舉例而言,在908,追蹤可包含掃描頁面視圖及/或頁面視圖的一或多個更新區段的文件物件模型,以識別新的內容項目。在910,追蹤也可包含建置頁面視圖及/或頁面視圖的一或多個更新區段的編碼表示。在912,追蹤也可包含序列化所建置的編碼;在914,壓縮序列化的編碼;以及在916,將壓縮的編碼傳送至一伺服器(例如分析伺服器118)。並未說明但在某些實例中可發現在於914進行壓縮之前可對編碼進行編碼。
在一實例中,在918,系統300或例如客戶側應用程式303係可決定在佇列中是否存在內容項目。在920,由於在佇列中不存在內容項目,內容緩存伺服器116例如可藉由將內容插回佇列中而回收所使用的內容。又,在920,內容緩存伺服器116可例如自一內容來源擷取新內容以填滿佇列。若內容在頁面視圖的通信期內使用完盡,則該內容可被加至佇列。此外,在內容的回收中,例如內容緩存伺服器116係可改變於頁面視圖通信期內所使用的內容的至少一個內容項目。又,在一實例中,相對於所述之回收內容,可利用新的內容來更新佇列。無論如何,都可利用來自複數個內容來源之新的及/或回收的內容來持續更新佇列,以避免發生頁面視圖通信期使用完盡佇列中的新的或回收的內容項目。在一個實例中,新內容的數量會使得在通信期內佇列中實際上無法存在回收的內容項目。在這樣的例子中,回收就變成是廢棄不用。
第十圖為可實施系統300的一或多個態樣或與該系統300相關聯之態樣(例如內容緩存伺服器116)的一電子裝置1000的實例之方塊圖。電子裝置1000的例子包含一伺服器(例如伺服器102、106、108、112、116或118),或是包含一客戶裝置(例如客戶裝置301)。電子裝置1000可包含一處理器1002、記憶體1010、電源供應器1006及輸入/輸出構件,例如網路介面1030與輸入/輸出介面1040及連接電子裝置的前述元件之通訊匯流排1004。網路介面1030可包含一接收器與一發送器(或一收發器)以及一天線以供無線通訊。處理器1002可為一或多個任何類型之處理裝置,例如中央處理單元(CPU)。又,舉例而言,處理器1002可為中央處理邏輯;中央處理邏輯係包含硬體、韌體、軟體及/或其每一個的組合,以執行功能或動作及/或產生自另一構件之功能或動作。又,中央處理邏輯係包含一軟體控制微處理器、分離的邏輯,例如專用積體電路(ASIC)、可編程/編程之邏輯裝置、含有指令的記憶體裝置等或內嵌於硬體中的組合邏輯。又,邏輯也可完全具現為軟體。記憶體1010(其可包含隨機存取記憶體(RAM)1012或唯讀記憶體(ROM)1014)係可由一或多個任何類型的記憶體裝置所進行,例如主要(可由CPU直接存取)及/或次要(非由CPU直接存取)儲存裝置(例如快閃記憶體、磁碟機、光碟機)。
RAM 1012可儲存定義操作統1021、資料儲存器1024及應用程式1022之資料與指令,包括客戶側應用程式303、系統300的態樣及/或用以啟動內容緩存伺服器116的態樣之指令。一應用程式所提供之例示內容(例如內容316)可包含文字、影像、音頻、視頻等,其係以物理訊號(例如電氣訊號)的形式進行處理,或可以物理狀態方式儲存於記憶體中。
ROM可包含電子裝置1000的基本輸入/輸出系統(BIOS)1020。電源供應器1006含有一或多個電源構件,其可增進對電子裝置1000的電源供應與管理。輸入/輸出構件可包含用於促進電子裝置1000的任何構件、外部裝置的構件(例如資訊系統100的其他裝置的構件)以及末端使用者之間的通訊的任何介面。舉例而言,這類構件可包含一網路卡,其係接收器、傳送器以及一或多個I/O介面(例如輸入/輸出介面1040)之整合。舉例而言,網路卡可增進與網路的其他裝置之有線或無線通訊。在無線通訊的情況下,天線可增進通訊。I/O構件(例如I/O介面1040)可包含使用者介面,例如監視器、鍵盤、觸控螢幕、麥克風與揚聲器。此外,某些I/O構件(例如I/O構件1040)以及匯流排1004可增進電子裝置1000的構件之間的通訊,且可簡化處理器1002所執行之處理。
當電子裝置1000為一伺服器,其可包含能夠發送或接收訊號(例如經由一有線或無線網路)或能夠處理或儲存訊號(例如在記憶體中以物理記憶狀態的方式),且係因此而運作作為一伺服器的計算裝置。因此,可運作作為一伺服器的裝置係包括,例如專用機架固定式伺服器、桌上型電腦、膝上型電腦、機上盒、結合各種特徵(例如前述裝置的兩種或多種特徵)之整合型裝置等。
此外,伺服器在配置與能力上係可廣泛變化,但一般而言,伺服器係包含一或多個中央處理單元與記憶體。伺服器也包含一或多個主要儲存裝置、一或多個電源供應器、一或多個有線或無線網路介面、一或多個輸入/輸出介面或一或多個操作系統(例如Windows Server、Mac OS X、Unix、Linux、FreeBSD等)。特別是,伺服器係一應用程式伺服器,其包含 一種可經由網路對其他裝置提供應用程式之配置,例如系統300。又,應用程式伺服器可例如管理一網站,該網站可提供使用者介面以供系統300的配置。
雖然本發明以前述的較佳實施例揭露如上,然其並非用以限定本發明,任何熟習相像技藝者,在不脫離本發明的精神和範圍內,當可作些許更動與潤飾,因此本發明的專利保護範圍須視本說明書所附的申請專利範圍所界定者為準。
100‧‧‧資訊系統
102‧‧‧廣告伺服器
104‧‧‧帳戶資料庫
106‧‧‧搜尋引擎伺服器
108‧‧‧廣告伺服器
110‧‧‧廣告資料庫
112‧‧‧內容伺服器
114‧‧‧內容資料庫
116‧‧‧內容緩存伺服器
118‧‧‧分析伺服器
119‧‧‧分析資料庫
120‧‧‧廣告主裝置
122‧‧‧廣告主裝置
124‧‧‧使用者裝置
126‧‧‧膝上型電腦
128‧‧‧智慧型電話

Claims (20)

  1. 一種儲存於可由一處理器執行之一非暫態媒介中的系統,包含:一編碼掃描器,係配置以:於一客戶側應用程式的一共享執行緒上運行;於頁面視圖的一或多個區段內掃描該頁面視圖的一文件物件模型(DOM);及識別該掃描DOM內之儀表資料;一資料序列化裝置,係通訊耦接至該編碼掃描器,該資料序列化裝置係配置以:於該客戶側應用程式的一第一專用執行緒或一共享執行緒上運行;及序列化該儀表資料;以及一編碼壓縮器,係配置以:於該客戶側應用程式的一第二專用執行緒上運行;及壓縮該序列化資料。
  2. 如申請專利範圍第1項所述之系統,其中該共享執行緒是一第一共享執行緒,且其中該系統進一步包含:一使用者互動追蹤器,其通訊耦接至該資料序列化裝置,該使用者互動追蹤器係配置以:於該客戶側應用程式的一第二共享執行緒上運行;追蹤與該一或多個區段內的使用者介面元件的使用者互動;從該追蹤使用者互動得出使用者互動資料;及 將該使用者互動資料加至該儀表資料。
  3. 如申請專利範圍第1項所述之系統,其中該共享執行緒係一第一共享執行緒,且其中該系統進一步包含:一編碼建置器,其通訊耦接至該編碼掃描器與該資料序列化裝置,該編碼建置器係配置以:於該客戶側應用程式的一第二共享執行緒上運行;及根據該DOM建置該一或多個區段的一分層表示;以及一通訊介面,其係通訊耦接至該編碼壓縮器,該通訊介面係配置以:於該客戶側應用程式的一第三共享執行緒上運行;及傳送該壓縮資料至一伺服器。
  4. 如申請專利範圍第1項所述之系統,其中該儀表資料包含內容資料、頁面視圖資料、使用者互動資料以及客戶側應用程式資料中其一或多者。
  5. 如申請專利範圍第1項所述之系統,其中該編碼壓縮器係配置以:壓縮該序列化資料,使得該壓縮資料相容於該頁面視圖相關聯之一緩存模型層及資料層的操作,該緩存模型層與該資料層的至少部分是在該頁面視圖來源處受管理。
  6. 如申請專利範圍第1項所述之系統,其中該編碼掃描器係配置以接收欲追蹤之一頁面視圖的一或多個區段之指示。
  7. 如申請專利範圍第2項所述之系統,其中該使用者互動包含連結視圖、頁面視圖、對頁面縮圖的點擊以及駐留時間中其一或多者。
  8. 如申請專利範圍第2項所述之系統,其中該客戶側應用程式的每一個 共享執行緒是一前台執行緒。
  9. 如申請專利範圍第8項所述之系統,其中該客戶側應用程式的每一個專用執行緒是一背景執行緒。
  10. 如申請專利範圍第2項所述之系統,其中該些共享執行緒是一個執行緒,且其中該些專用執行緒是一個執行緒。
  11. 如申請專利範圍第1項所述之系統,其中該編碼掃描器、該編碼建置器、該資料序列化裝置、該編碼壓縮器及該通訊介面中至少其一是以一解譯電腦程式語言來實施。
  12. 如申請專利範圍第1項所述之系統,其中序列化是以一序列化格式來實施,該序列化格式使用可人為讀取文字傳送包含屬性-值對的資料物件。
  13. 如申請專利範圍第12項所述之系統,其中該序列化格式是JAVASCRIPT OBJECT NOTATION(JSON)。
  14. 如申請專利範圍第1項所述之系統,其中該編碼壓縮器是透過一網路工作者而實施。
  15. 一種方法,包含:在一客戶側應用程式的一第一執行緒上,於一頁面視圖的一或多個區段內,掃描該頁面視圖的一文件物件模型(DOM),以產生掃描儀表資料;序列化該掃描儀表資料;以及在該客戶側應用程式的一第二執行緒上,壓縮該序列化資料。
  16. 如申請專利範圍第15項所述之方法,進一步包含: 識別該掃描儀表資料內的一或多個定位點;在所述序列化之前,建置該一或多個區段的一分層表示,其中該分層表示包含該一或多個固定點,且其中該序列化包含該一或多個區段的該建置分層表示的序列化。
  17. 如申請專利範圍第15項所述之方法,進一步包含:追蹤與該一或多個區段內的使用者介面元件之使用者互動;從該追蹤使用者互動得出使用者互動資料;及將該使用者互動資料加至該掃描儀表資料。
  18. 如申請專利範圍第15項所述之方法,進一步包含:接收欲追蹤之一頁面視圖的一或多個區段的一指示。
  19. 如申請專利範圍第15項所述之方法,進一步包含:傳送該壓縮資料至一伺服器。
  20. 一種系統,包含:用於在一頁面視圖的一或多個區段內掃描該頁面視圖的一文件物件模型(DOM)以產生掃描儀表資料之裝置,該用於掃描之裝置係於一客戶側應用程式的一第一執行緒上運行;用於序列化該掃描儀表資料之裝置;及用於壓縮該序列化資料之裝置,該用於壓縮之裝置係於該客戶側應用程式的一第二執行緒上運行。
TW104102499A 2014-01-31 2015-01-26 自客戶側應用程式之傳送資料壓縮序列化 TWI590157B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/170,377 US9779069B2 (en) 2014-01-31 2014-01-31 Model traversing based compressed serialization of user interaction data and communication from a client-side application

Publications (2)

Publication Number Publication Date
TW201539322A true TW201539322A (zh) 2015-10-16
TWI590157B TWI590157B (zh) 2017-07-01

Family

ID=52444172

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104102499A TWI590157B (zh) 2014-01-31 2015-01-26 自客戶側應用程式之傳送資料壓縮序列化

Country Status (5)

Country Link
US (1) US9779069B2 (zh)
EP (1) EP2903241B1 (zh)
CN (1) CN104820668B (zh)
HK (1) HK1212490A1 (zh)
TW (1) TWI590157B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI620091B (zh) * 2016-09-13 2018-04-01 健行學校財團法人健行科技大學 植基於worker序列化請求的認證處理方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10375183B2 (en) * 2013-03-15 2019-08-06 Coursera, Inc. Eventing analysis framework
US10339572B2 (en) * 2014-01-31 2019-07-02 Oath Inc. Tracking user interaction with a stream of content
US10812588B2 (en) * 2016-01-13 2020-10-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Storage performance based on data placement
CN106991100B (zh) * 2016-01-21 2021-10-01 北京京东尚科信息技术有限公司 数据导入方法及装置
CN106101114B (zh) * 2016-06-27 2019-06-04 浪潮金融信息技术有限公司 一种序列化的资源共享***及方法
CN106294648B (zh) * 2016-08-03 2021-07-27 腾讯科技(深圳)有限公司 一种针对页面访问路径的处理方法及装置
US10650081B2 (en) * 2016-08-25 2020-05-12 Adobe Inc. Television application page tracking using declarative page tracking
CN109428939B (zh) * 2017-09-04 2023-06-30 上海仪电(集团)有限公司中央研究院 一种外挂式云端联动时空感知的传感***
CN108256017B (zh) * 2018-01-08 2020-12-15 武汉斗鱼网络科技有限公司 一种用于数据存储的方法、装置及计算机设备
CN109739728B (zh) * 2019-01-08 2023-06-13 武汉益模科技股份有限公司 一种mes***性能和日志数据监控方法
CN110928543A (zh) * 2019-11-04 2020-03-27 北京小米移动软件有限公司 页面处理方法、装置及存储介质
CN111901685B (zh) * 2020-07-30 2023-09-08 深圳市康冠科技股份有限公司 一种文件扫描方法及相关装置
CN112162755B (zh) * 2020-09-28 2023-03-31 抖音视界有限公司 一种数据处理方法、装置、介质和电子设备
CN113518094B (zh) * 2021-09-14 2021-12-28 深圳市普渡科技有限公司 数据处理方法、装置、机器人和存储介质
CN114722012A (zh) * 2021-12-23 2022-07-08 武汉联影生命科学仪器有限公司 一种动物扫描成像数据导出方法、***、电子设备

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796952A (en) 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US6038601A (en) 1997-07-21 2000-03-14 Tibco, Inc. Method and apparatus for storing and delivering documents on the internet
US6769032B1 (en) * 1998-05-15 2004-07-27 E.Piphany, Inc. Augmented processing of information objects in a distributed messaging framework in a computer network
AU5461000A (en) 1999-06-03 2000-12-28 Keylime Software Inc. System and method for monitoring user interaction with web pages
US6883032B1 (en) 2000-02-02 2005-04-19 Lucent Technologies Inc. Method and system for collecting data on the internet
US7747782B2 (en) 2000-04-26 2010-06-29 Novarra, Inc. System and method for providing and displaying information content
WO2002005119A1 (en) * 2000-07-07 2002-01-17 Consilient, Inc. Method and apparatus for providing process-container platforms
US20020078191A1 (en) 2000-12-20 2002-06-20 Todd Lorenz User tracking in a Web session spanning multiple Web resources without need to modify user-side hardware or software or to store cookies at user-side hardware
US6944660B2 (en) 2001-05-04 2005-09-13 Hewlett-Packard Development Company, L.P. System and method for monitoring browser event activities
US7185085B2 (en) 2002-02-27 2007-02-27 Webtrends, Inc. On-line web traffic sampling
US7349827B1 (en) 2002-09-18 2008-03-25 Doubleclick Inc. System and method for reporting website activity based on inferred attribution methodology
CN1203403C (zh) 2003-01-17 2005-05-25 天图信息技术(上海)有限公司 网视网络广告投放***中的后台智能下载方法
US8949220B2 (en) * 2003-12-19 2015-02-03 Oracle International Corporation Techniques for managing XML data associated with multiple execution units
EP1759315B1 (en) * 2004-06-23 2010-06-30 Oracle International Corporation Efficient evaluation of queries using translation
US20060259585A1 (en) 2005-05-10 2006-11-16 International Business Machines Corporation Enabling user selection of web page position download priority during a download
US7975019B1 (en) 2005-07-15 2011-07-05 Amazon Technologies, Inc. Dynamic supplementation of rendered web pages with content supplied by a separate source
US20070118910A1 (en) * 2005-09-02 2007-05-24 Taylor Stephen F Identification of files in a file sharing environment
US7941525B1 (en) 2006-04-01 2011-05-10 ClickTale, Ltd. Method and system for monitoring an activity of a user
US20070255821A1 (en) 2006-05-01 2007-11-01 Li Ge Real-time click fraud detecting and blocking system
US20080184128A1 (en) * 2007-01-25 2008-07-31 Swenson Erik R Mobile device user interface for remote interaction
US20080263446A1 (en) * 2007-04-20 2008-10-23 Utbk, Inc. Methods and Systems to Connect People to Services via Virtual Reality
US8099739B1 (en) * 2007-06-14 2012-01-17 Keithley Instruments, Inc. Java applet management method
US20090063262A1 (en) 2007-08-31 2009-03-05 Microsoft Corporation Batching ad-selection requests for concurrent communication
US7930646B2 (en) 2007-10-19 2011-04-19 Microsoft Corporation Dynamically updated virtual list view
US20130132833A1 (en) * 2008-04-15 2013-05-23 Foresee Results, Inc. Systems and Methods For Remote Tracking And Replay Of User Interaction With A Webpage
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US8812451B2 (en) 2009-03-11 2014-08-19 Microsoft Corporation Programming model for synchronizing browser caches across devices and web services
CA2772406A1 (en) 2009-09-03 2011-03-10 Virtual Piggy, Inc. Parent playback
US20110125759A1 (en) 2009-11-17 2011-05-26 Yoono, Inc Method and system to contextualize information being displayed to a user
US20120022926A1 (en) 2010-07-12 2012-01-26 Kumaresan Ramanathan Process for increasing visibility of animated advertisements
US8769039B2 (en) * 2011-01-21 2014-07-01 Kaseya International Limited Method and apparatus of performing remote computer file exchange
US20140040437A1 (en) * 2011-05-19 2014-02-06 Nippon Hoso Kyokai Receiver and reception method
CN102841901B (zh) * 2011-06-23 2015-09-09 腾讯科技(深圳)有限公司 一种网页显示的方法和装置
US8874781B2 (en) 2011-10-17 2014-10-28 Qualcomm Incorporated System and apparatus for power efficient delivery of social network updates to a receiver device in a broadcast network
US20130145252A1 (en) 2011-12-02 2013-06-06 Opera Software Asa Page based navigation and presentation of web content
CN103425699B (zh) * 2012-05-24 2016-11-09 腾讯科技(深圳)有限公司 获取网页的方法、设备和***
CN102710768A (zh) * 2012-05-31 2012-10-03 深圳市远行科技有限公司 一种基于面向服务架构的大批量数据传输***及方法
US20130339485A1 (en) * 2012-06-13 2013-12-19 Motorola Mobility, Inc. Multi-Threaded Asynchronous Download of a Set of Script files Used in a Web Application
US9246847B2 (en) * 2012-12-17 2016-01-26 Telefonaktiebolaget L M Ericsson (Publ) Extending the reach and effectiveness of header compression in access networks using SDN
US20150067024A1 (en) 2013-08-27 2015-03-05 Apple Inc. Autobatching

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI620091B (zh) * 2016-09-13 2018-04-01 健行學校財團法人健行科技大學 植基於worker序列化請求的認證處理方法

Also Published As

Publication number Publication date
US20150220502A1 (en) 2015-08-06
CN104820668B (zh) 2019-06-07
TWI590157B (zh) 2017-07-01
EP2903241B1 (en) 2020-04-22
EP2903241A1 (en) 2015-08-05
CN104820668A (zh) 2015-08-05
US9779069B2 (en) 2017-10-03
HK1212490A1 (zh) 2016-06-10

Similar Documents

Publication Publication Date Title
TWI590157B (zh) 自客戶側應用程式之傳送資料壓縮序列化
US10769353B2 (en) Dynamic streaming content provided by server and client-side tracking application
US20220171915A1 (en) Automated augmentation of text, web and physical environments using multimedia content
US9680897B2 (en) Throttled scanning for optimized compression of network communicated data
US10289659B2 (en) Delivery and display of page previews using shadow DOM
US10339572B2 (en) Tracking user interaction with a stream of content
US9369406B2 (en) Resource server providing a rapidly changing resource
US9317623B2 (en) Dynamic webpage image
US11488213B2 (en) Tracking user interaction with a stream of content
US20150089348A1 (en) System and method for web page background image delivery
US20160182606A1 (en) Network Based Static Font Subset Management
EP3559818B1 (en) Maintaining session identifiers across multiple webpages for content selection
CN112243517A (zh) 资源上单个样式定义标识符的条件解释
JP2022528212A (ja) ネットワークリソースのセキュリティおよび利用を改善するためにローカルコンテンツを生成および選択するためのシステムおよび方法
US9754035B2 (en) Recursive unique user metrics in real time
US9497251B2 (en) Serving of web pages according to web site launch times
CA3226177A1 (en) Publisher permissioned activation in cookieless authentication environment
CN116233041A (zh) 信息处理方法、装置及电子设备