Antidot Training AFS@Store AFS@Store Introduction 2 Antidot - - PowerPoint PPT Presentation
Antidot Training AFS@Store AFS@Store Introduction 2 Antidot - - PowerPoint PPT Presentation
Antidot Training AFS@Store AFS@Store Introduction 2 Antidot solution for E-Commerce 3 What is AFS@Store ? Search engine + merchandising Searchandising solution 4 What is AFS@Store ? Find Lead In fl uence
2
Introduction
AFS@Store
3
Antidot solution for E-Commerce
4
What is AFS@Store ?
- Search engine
+
- merchandising
à Searchandising solution
5
What is AFS@Store ?
- Find
- Lead
- Influence
- Analyze
6
What is AFS@Store ?
- Find
- Lead
- Influence
- Analyze
7
Find
- 4 key-features
- Relevance
- Tolerance
- Semantic search
- Multi source
8
Find - Relevance
9
Find - Relevance
10
Find – Tolerance - Automatism
11
Find – Tolerance - Automatism
12
Find – Tolerance - Automatism
13
Find – Tolerance - Automatism
14
Find – Semantic search
15
Find – Semantic search
Generic ¡terms ¡ Synonyms ¡ Specific ¡terms ¡
Synonyms and thesaurus : quickly managed from Back-Office
16
Find – Multi source
- Search into the whole website content
- Catalog
- Editorial
content
- Stores list
- Blog
- Forum
17
Find – Multi source
- Search into the whole website content
- Catalog
- Editorial
content
- Stores list
- Blog
- Forum
18
What is AFS@Store ?
- Find
- Lead
- Influence
- Analyze
19
Lead
- Lead customers asap
- Expose queries: list, tags
- Autocomplete / suggestions
- Navigate into search replies
- Geographic tools and Web To Shop
20
Lead – Expose queries
21
Lead – Autocomplete
22
Lead – Autocomplete
Autocomplete from product, categories, or any other business-
- riented data
23
Lead – Autocomplete
Autocomplete from products, blog entries, with choosen vocabulary
24
Lead – Autocomplete
Spelling tolerance
25
Lead – Navigate
26
Lead – Navigate
27
Lead – Web To Shop
28
Lead – Geographic search
29
What is AFS@Store ?
- Find
- Lead
- Influence
- Analyze
30
Influence
- Influence customer to its choice
- Automatic merchandising
- Back-Office application allowing to organize
replies
- Promotional campaigns from keywords
31
Influence – Automatic merchandising
Sales and news in front of the list
32
Influence – Replies organization
Example: Availability Relevance Ante-chronological
33
Influence – Promote
Promote from keywords
Internal ¡Adwords-‑like ¡
34
What is AFS@Store ?
- Find
- Lead
- Influence
- Analyze
35
Analyze
- Figure out the behavior of customers
- Most frequent queries
- Queries without replies
- Queries distribution
36
Analyze – Figure out
37
Analyze – Management
38
Overview architecture
AFS@Store
39
Industrial and full customizable
- Open to many platforms
- From 1000 to X million articles
- Live indexing if needed
- Free layout finalization
- Multi-stores, multi-lingual, multi-currencies, …
Back-‑office ¡ Search ¡and ¡ Autocomple5on ¡(ACP) ¡Engine ¡ Indexa5on ¡Engine ¡ Administration Interface
Web ¡Front-‑End ¡ E-‑Commerce ¡Pla3orm ¡
CMS
Unstructured ¡ Content ¡ Structured ¡Content ¡
Product Catalog
+Multilingual +Multi-site +Multi-brands +Multi-categories +Blog entries +Tip sheets
ACP & Search Queries ACP & Search Results
+Tolerance +Phonetic
- Reference matching
- Fuzzy
+Spellcheck +Semantics
- Flexions
- Synonyms
+Merchandizing +Logs-Service Monitoring +Analytics +Campaign Management +Thesaurus Management
¡ ¡ ¡ACP ¡& ¡Search ¡Results ¡FormaDng ¡ XML ¡Pivot ¡Format ¡Conversion ¡
+Autogenerated facets +Banners +Catalog entries HTML REST Webservice XML REST Webservice Export Export
1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡
41
Features
AFS@Store
42
AFS@Store Features
- Indexation
- On-demand
- Several modes: full, incremental (only for Catalog)
- Natively multilingual
- Input data validation
- Many kind of catalogs
- Linguistic resources (business-oriented thesauri):
- apparel.csv
- colors.rdf
- electronics.csv
- home_improvement.csv
- materials.csv
- office.csv
- sports.csv
43
AFS@Store Features
- Tolerance
- Dictionaries for most of the occidental languages
- Business-oriented vocabularies
- References
- Fuzzy autocompletion
44
AFS@Store Features
- User helps
- Facets, sorts, filters
- Spellcheck
- Categories and brands suggestions
45
AFS@Store Features
- Monitoring (Back-Office)
- Create view per sites
- Hit-Parade, Metrics,
- Vocabularies edition (synonyms)
- Monitoring of specific autocompletion
46
AFS@Store Features
- Pivot format as entry point
- Follow that format allows to benefit from presets
- New fields can be dynamically added :
- Descriptions:
plain text fields
- Properties:
facets
- Identifiers:
products references
- Marketing operations: standard and custom flag
- Misc:
non-indexed fields but returned within the output
- Settings computed at each indexation, no Antidot intervention
- Input validation
- Already known output format
47
AFS@Store project steps
- Step #0: Technical training (optional)
- Step #1: Business requirements, functional specifications
- Step #2: Transmit the data
- Step #3: Antidot provides your AFS@Store instance
- Step #4: Technical integration
- Step #5: Customer validation
- Spellcheck integrated
- Sort : relevance, + searchandizing, stock,
- Facets
- Promotes
- Step #6: Go live
48
Business requirements
AFS@Store
49
Business requirements
- Features selection:
- Cf. AFS@Store User Experience document
- Autocomplete
- Portal
- Mobile (coming soon)
50
Data selection
- 5 data feeds available:
- Catalog (mandatory)
- Only export products you need to see in search
- Use variants or not
- Define context (websites, store)
- Articles
- Blog or CMS entries
- Stores
- Physical stores
- Categories
- Categories landing pages, if any
- Brands
- Brands landing pages, if any
51
Transmitting the data
AFS@Store
52
Data creation: the archives
- One zip per feed, and must be named as:
- yyyymmdd_full_[projectName]_[feedName].zip
20121008_full_antidot_catalog.zip
- Basically an archive contains one file per
language, named:
- [feed]-[website-name]-[ISO language code - 2 minimal
characters].xml categories-antidot-fr.xml catalog-antidot-nl.xml
53
Data creation: the archives
- If multiple website for a single language, you can use
several files:
categories-website1-fr.xml catalog-website2-fr.xml
- Incremental update support for catalog
Rename the archive by:
- using a more precise timestamp (second is ok)
- replace 'full' by 'inc’
20121107033047_inc_antidot_catalog.zip
54
Data creation: the xml
- Only one language per file
- UTF-8 mandatory
- Ids must be unique within a file
- xml:lang must use only ISO 639-1 (Alpha2)
- Must be xml valid
55
Data quality: offline
- AFS@Store provides XSD
- http://ref.antidot.net/store/latest
- Choose the right XSD for the right feed
- Skeletons validate the main structure of the xml file
- catalogSkeleton.xsd for catalog feed
- Main XSD validates the whole content of a feed:
- catalog.xsd for catalog feed
- Unit XSD validates one document
- product.xsd for product within a catalog
56
Data quality: using the Back-Office
- When sending a data feed, you can check it runs
well from Antidot Back-Office
- A run can fail if
- not XML valid
- not conform to the XSD
- too many documents (e.g products) fail validation
- If only few documents failed, indexation will
proceed
57
Data quality: using the Back-Office
- Antidot Back-Office gives you details about XSD failures when it
comes to specific products:
- You can even check input data by clicking product link from
Dataflow logs.
- You will access a Document Inspector containing xml data of the
document
58
Sending data
- SFTP
- Account required on Antidot Datacenter
- Push the data with appropriate script (PHP, Shell,…)
- Automate the script for upload, by choosing:
- Frequencies
- Schedules
- Based on project requirements
(prices, stock, product updates)
- HTTPS upload
- Incoming
59
Sending data
- SFTP
- HTTP upload
- Account required on Antidot Back-Office
- Push the data with appropriate web service: upload
- Automate upload, by choosing:
- Frequencies
- Schedules
- Based on project requirements
(prices, stock, product updates)
60
Sending data : upload from BO
61
Sending data: upload from WS
- Example with shell script
export HOST=bo-store.afs-antidot.net export FILE=20151016_full_foobar_catalog.zip export SERVICE_ID=42 export STATUS=rc export PAF_NAME=Catalog export LOGIN=login://user:password@BOWS export UPLOAD_TYPE=full
- …
curl
- H Expect:
- -form file1="@${FILE}"
- "https://${HOST}/bo-ws/service/${SERVICE_ID}/instance/${STATUS}/
paf/${PAF_NAME}/upload?afs:login=${LOGIN}%26afs:type=${UPLOAD_TYPE}"
- X POST
…
62
Sending data: upload from WS
- Example with shell script
export HOST=bo-store.afs-antidot.net export FILE=20151016_full_foobar_catalog.zip export SERVICE_ID=42 export STATUS=rc export PAF_NAME=Catalog export LOGIN=login://user:password@BOWS export UPLOAD_TYPE=full
…
curl
- H Expect:
- -form file1="@${FILE}"
"https://${HOST}/bo-ws/service/${SERVICE_ID}/instance/${STATUS}/ paf/${PAF_NAME}/upload?afs:login=${LOGIN}&afs:type=${UPLOAD_TYPE}"
- X POST
…
63
Sending data: upload from WS
- Can also be used in php, python, etc.
- Example at Antidot
- Python WS API
- Upload data
- Run processing pipelines
- Wait for pipeline to end
- …
64
Data model in details
AFS@Store
65
AFS@Store data model
- AFS@Store relies on a specific vocabulary defined by
Antidot and expressed as XML Schemas
- Each xml file (a.k.a feed) sent as input must conform
to these schemas.
- Failed documents won’t be indexed. That condition
ensures the search engine quality.
- It’s also a check to avoid the update of an index with
less than 95% of input products valids.
66
Data feed header
- Common to all the AFS@Store feeds.
- Xml fragment defining minimum details about
data file.
<header> <owner>Antisearch</owner> <feed>parapharmacy</feed> <generated_at>2011-07-19T15:37:41+02:00</generated_at> </header>
67
Catalog data format
- 5 feeds availables
- Catalog (mandatory)
- Categories
- Brands
- Articles
- Stores
68
Catalog: what are variants ?
- Variants are SKU which share common
- characteristics. These define a main product.
- Tshirt
Tshirt A A is the product; white one in S and L, red one and green ones are its variants.
S ¡
S ¡ L ¡ M ¡ M ¡
Tshirt ¡A ¡
69
Catalog: what are variants ?
- Variants may be specific for prices, colors,
sizes, stock, custom attributes (properties)
- Only matching variants will be returned by
search
- Facets will list the values for the matching
variant, while showing the product model.
- Example: TshirtA is available on colors white, red,
green, and on sizes S, M, L
70
Catalog context
- Language is an atomic context, sufficient if you have
- nly one website per language
- Use website
tes for a simple filter for search and acp
- Use sto
tores when price, availability or marketing depends of physical or virtual stores
- Examples
- Drives support: use one store per physical shop, plus one for web
shop
- Multiple countries context: use stores (one per country)
- Store is available at product
product or va variant level
71
Catalog fields
- Autocompletion must be explicitely enabled
- <product id="70551" xml:lang="fr" autocomplete="on">
- Identifiers
- Extendable products codes
- Classification
- See further section
- Properties
- See further section
- Descriptions
- Extendable plain text descriptions
- Marketing operations
- See further section
- Price model
- See further section
- Misc
- Free fields, not indexed, only for display purposes
72
Catalog – classification
- Hierarchy and multiple values supported
- Use img, url and keywords attributes for ACP
- Autocompletion enabled by default
- It can use a specific setting that will enable match on
brand which contains these categories
- Example:
<classification autocomplete="cross">
- ACP feed will be named:
- categories_[websiteId]_[lang]
73
Catalog – properties
- Allows to create facets
- name and label
- string, date, numeric
- tree or interval (numeric only)
- A property can become an acp feed with
custom meta data (cf. examples from AFS@Store integration guide)
- ACP feed will be named:
- property_[propertyName]_[websiteId]_[lang]
74
Catalog – marketing operations
- Very important to get merchandizing into search
and acp
- Search: filters and sort criteria, marketing facet
- ACP: automatic boost
- Available operations:
- is_promotional
- is_new
- Is_best_sale
- is_featured
- operation (custom)
75
Catalog – price model
- Price final
- Price cut only for promotional items
- Several attributes:
- currency (mandatory): automatic facet per currency
- off: discount percentage, will create automatic facet
(price_off), meta data for product acp and use in acp scoring
- Quantities
- Price ranges per quantity
76
Categories data format
- 5 feeds availables
- Catalog (mandatory)
- Categories
- Brands
- Articles
- Stores
77
Categories data format
- Use broader to link categories
- Use websites to contextualize (url, products count, …)
- Add keywords for broader matching
- Autocompletion must be explicitely enabled if needed:
<category id="99998" xml:lang="fr" autocomplete=”on">
- ACP feed will be named:
- categories_pages_[websiteId]_[lang]
- ACP differences versus categories feed from Catalog
- Contains all landing pages, products count
- Can not be crossed with brands
78
AFS@Store Features
- 5 feeds availables
- Catalog (mandatory)
- Categories
- Brands
- Articles
- Stores
79
Brands data format
- Same as Categories, but:
- No broader element
- Autocomplete not yet supported
80
AFS@Store data format
- 5 feeds availables
- Catalog (mandatory)
- Categories
- Brands
- Articles
- Stores
81
Articles data format
- Autocompletion enabled by default on title
- Support ACP on classification node
- ACP feed will be named:
- articles_[websiteId]_[lang]
- articles_classification_[websiteId]_[lang]
- Important fields
- text:
main raw article content
- type:
allows search clustering and acp flag
- websites:
filter for search and acp
- classification:
same features as Catalog
- interaction_counts: extendable sort criteria
- dates:
sort criteria
82
AFS@Store data format
- 5 feeds availables
- Catalog (mandatory)
- Categories
- Brands
- Articles
- Stores
83
AFS@Store data format
- Autocompletion enabled by default
- ACP feed will be named:
- stores_[websiteId]_[lang]
- Support for geo:dist enabled with longitude and latitude
fields
- Support for websites as a filter (no contextualization)
- Others filters:
- is_shipping_target
- country
- Allows free fields within misc element
84
Tutorial
AFS@Store
85
AFS@Store features
- Tutorial
1) From e-commerce website, create
te an AFS@Store sample for the Cata talog feed
2) 2) Validate
te the sample with provided xsd
3) 3) Add
Add more elements to the sample : facets, misc, …
4) According to the filename policy : rename xml, zip it,
rename zip and upload upload to the given directory
86
Ready to use !
AFS@Store
87
AFS@Store output
- Live example
88
AFS@Store output
- Raw XML or XSL skin
89
Search API
AFS@Store
90
Search
- Parameters list
- afs:query
- afs:sort
- afs:filter
- afs:cluster
- afs:tag
- …
- cf. AFS@Store online integration guide:
Search Service > Query Syntax
91
Tutorial – Search parameters
AFS@Store
92
Search
- Go to the given URL (http://eval.partners.antidot.net/search?afs:service=7006)
- Launch the query “fleur".
- Sort the results by ascending price (predicate name : ”price_eur”)
Query : ......................................................................................................
- From the previous request, filter results via the classification filter with the “10006"
value. Query : ......................................................................................................
- Launch a new query : “croquettes".
- Cluster results by brand with 2 replies by clusters, and add a tag ”Bargain price" when
the price value is less than 4. Query : ......................................................................................................
93
Search
- Tutorial (2/2)
- Launch the query “Tuteurs Bambou" in strict ftsMatch mode,
- Keep only facets values in french
Query : ......................................................................................................
- Launch a query on “sachets pour chats”,
- Filter on items which are between 6 and 20 €, which brand value is “FELIX” or
“SCIENCE PLAN”
- Hide all the facets
Query : ......................................................................................................
- Search "boite", keep only the brand and classification facets, display classification
facet before brand, reorder the values of brand facets by reversed alphabetical
- rder, and get the result of the query in JSON.
Query : ......................................................................................................
94
Search
- Correction (1/2)
- Launch the query “fleur".
- Sort the results by ascending price (predicate name : ”price_eur”)
Query : http://<IP>/search?afs:service=7006&afs:query=fleur&afs:sort afs:sort=price_eur,ASC price_eur,ASC
- From the previous request, filter results via the classification filter with the “10006"
value. Query : http://<IP>/search? afs:service=7006&afs:query=fleur&afs:sort=price_eur,ASC&afs:filter=classifi ficati tion="1 "10 006" "
- Launch a new query : “croquettes".
- Cluster results by brand with 2 replies by clusters, and add a tag ”Bargain price" when
the price value is less than 4. Query : http://<IP>/search?afs:service=7006&afs:query=croquettes&afs:cluste ter=brand, =brand, 2&afs:ta tag="Ba Bargain price price": ":price_eur price_eur<4 <4
95
Search
- Correction (2/2)
- Launch the query “Tuteurs Bambou" in strict ftsMatch mode,
- Keep only facets values in french
Query : http://<IP>/search?afs:service=7006&afs:query=Tuteurs Bambou&afs:fts tsMatc tch=str trict&afs:lang afs:lang=fr fr
- Launch a query on “sachets pour chats”,
- Filter on items which are between 6 and 20 €, which brand value is “FELIX” or “SCIENCE
PLAN”
- Hide all the facets
Query : http://<IP>/search?afs:service=7006&afs:query=sachets pour chats&afs:fi filte ter=price_eur price_eur=[6 .. 20] =[6 .. 20]&afs:fi filte ter=(b (brand="FE "FELIX IX" " or brand="S "SCIE IENCE PL PLAN") ")&afs:facetD tDefault=replies=0 =replies=0
- Search "boite", keep only the brand and classification facets, display classification facet
before brand, reorder the values of brand facets by reversed alphabetical order, and get the result of the query in JSON. Query : http://<IP>/search? afs:service=7006&afs:query=boite&afs:facetO tOrder=classifi ficati tion,brand&afs:facet afs:facet=brand =brand , , order
- rder=DESC
DESC&afs:outp tput=json json
96
Search integration
AFS@Store
97
PHP API
AFS@Store
98
PHP API
- PHP library used to interact with AFS search engine
- Open source:
https://github.com/antidot/PHP_API
- Documentation:
http://antidot.github.io/PHP_API/doc/html/
- Release notes:
http://doc-store.antidot.net/ > "Publications" Tab > API PHP Release Notes
99
PHP API
- Common packages (required)
- php5
- php5-cgi
- php5-curl
- Load the library
100
PHP API – Principle
- Relies on two main objects (Query and Reply)
designed like this:
API search.php
query reply
AFS
afs_lib.php
101
vide ¡ Helpers ¡ ¡Get ¡data ¡ ¡Set ¡parameter ¡ ¡ vide ¡ IniCalize ¡ Configure ¡ Execute ¡
PHP API – Principle
API search.php
query reply
102
PHP API – Examples
- Initialize a new search connection
$search = new AfsSearch('serveur.afs.com', 7000);
103
PHP API – Examples
- Build a new query
$query = $search->build_query_from_url_parameters();
104
PHP API – Examples
- Configure a new query
- Set facet order
$query = $query->set_facet_order('price_eur',rating','brand’);
- Set facets values sort order
$query = $query->set_facet_values_sort_order('classification', AfsFacetValuesSortMode::ALPHA, AfsSortOrder::ASC);
105
PHP API – Examples
- Configure a new query
- Get active filters
- $active_filters = array();
$sortedReplysets = array('Catalog', 'Articles'); foreach ($sortedReplySets as $feed) { foreach ($query->get_filters($feed) as $facet_id) {
- $active_filters[$facet_id] =
- $query->get_filter_values($facet_id, $feed);
- }
}
- …
106
PHP API – Examples
- Run the query
$search->execute($query)
107
PHP API – Helpers
<?php (…) $replyset = $helper->get_replyset() (…) ?> <?php foreach ($replyset->facets->facet as $facet) ?> (…) <?php $item = null; if ($facet->{'afs:t'} == 'FacetTree') {
- $item = 'node';
} elif ($facet->{'afs:t'} == 'FacetInterval') {
- $item = 'interval;
} else {
- throw new Exception('Unknown facet layout: ' . $facet->{'afs:t'});
} foreach ($facet->$item as $value) { … ?>
108
<?php $helper = $search->execute(AfsHelperFormat::HELPERS); $replyset = $helper->get_replyset() (…) ?>
- <?php
foreach ($replyset->get_facets() as $facet) { ?> (…) <?php foreach ($facet->get_elements() as $value) {
…
?>
PHP API – Helpers
109
PHP API – must know
- Custo
tom user and session ids ids
- Default
t behavi vior: :
- The API
PI generate tes its ts own
- wn user and session
user and session Id Ids. .
- It
It will will be be not t possible to to link link BO BO analyti ytics with th custo tomer website te user's user's sessions. sessions.
- To use custo
tom user and session ID IDs, , cookies cookies used used by y th the website te must t be be speci specifi fied ed: :
$user_session_manager = new AfsUserSessionManager('MyUserId', 'MySessionId');
- $search->get_helpers_configuration()
- >set_user_sessionmanager($user_session_manager);
- $helper = $search->execute();
110
PHP API – must know
- Helpers
Helpers auto to generate te links (p (pages, facets ts, etc tc.) )
- Generate
ted links links doesn't doesn't referring referring directl tly to to AFS FS query query engine engine
- Default
t link link ta target is is th the current current page page
- This
This ta target is is con confi figurable gurable vi via :
$search->set_query_coder(new AfsQueryCoder('MyTarget.php'));
- Get
Get th this link link and and send send th the request request to to AFS FS query query engine engine
111
PHP API – must know
- On
On link link ta target page, page, build build query query from from url url paramete ters $search->build_query_from_url_parameters();
- Then
Then seve veral process process can can be be applied applied: :
- facet
facet order
- rder,
,
- add
add of
- f paramete
ters, ,
- releva
vance tu tuning, ,
- sort,
t,
- etc
tc.
- And
And send send request request
$helper = $search->execute();
112
PHP API – must know
- Helpers
Helpers generate ted links links
- Warning:
- Note that each new query parameters that impact
direcly the response (new filter, new query, etc.) reset pagers !
113
PHP API – must know
- Pr
Promote tes
foreach ($helper->get_promotes() as $promote) { if ($promote->get_type() === "default") $custom_data = $promote->get_custom_data();
- elseif ($promote->get_type() === "banner") {
$url = $promote->get_url(); $image_url = $promote->get_image_url();
- elseif ($promote->get_type() === "redirect") {
$url = $promote->get_url(); }
- else { /* unknown promote */ }
}
114
PHP API
115
Tutorial – search integration
AFS@Store
116
Search
- Tutorial : PH
PHP P
- Thanks to the online documentation1
- 1. Con
Confi figure gure an example for the given search service
- 2. Modify
Modify your own template to display facets and results
- f the search service
- 3. Custo
tom the result
1 ¡: ¡hKp://anCdot.github.io/PHP_API/doc/html/index.html ¡
117
Autocompletion (ACP)
AFS@Store
118
ACP
- Many meta data
- Context as feed pattern
- Select feed to contextualize suggestions
- XML or JSON
- Automatic scoring
119
ACP
- Cf. AFS@Store online integration guide
- Autocompletion service
- Several ways to integrate:
- ACP kit
- JQuery Autocompleter
- PHP Api
- Other server languages to render HTML
120
ACP
SuggesCons ¡from ¡mulCple ¡feeds ¡ It’s ¡an ¡object ¡: ¡noCce ¡the ¡ ¡"{" ¡character ¡ SuggesCons ¡from ¡the ¡feed ¡« ¡brands_fr ¡» ¡ ¡ SuggesCons ¡from ¡the ¡feed ¡« ¡categories_fr ¡» ¡ ¡
121
ACP
- Integration
- Mono/multi list and mono/multi feed and custom
122
AFS@Store ACP
- Parameters list
- acp parameters are quite similar to the search
web service.
123
Tutorial – using ACP
AFS@Store
124
AFS@Store ACP
- Tutorial
- Go to the given url.
- Use
- Launch the query “fel" on the appropriate service id, and get the
generated acp Query : .........................................................................................
- Launch the query “fel" on the appropriate service id, using the
“brands_fr” feed, and get the acp. What’s the difference with the previous one ? Query : .........................................................................................
- From the previous request, limit the number of replies to 1 .
Query : .........................................................................................
125
Analytics
AFS@Store
126
Visitor Qualification
- Search sessions and unique visitor
- When a visitor launches a query, it’s necessary to try to
recognize him by reading:
- a user id from a cookie or database -> afs:userId
- a session id from a cookie
- > afs:sessionId
- Then, launch a query with this information transmitted
- In result page, retrieve session and user id to create
cookie/record if it doesn’t exist
127
Visitor Qualification
- User agent and IP addresses
- Propagate these informations for each search
query
- afs:ip
- afs:userAgent
- Allows bot detection as well as IP restrictions.
128
Visitor Behavior
- Origin of a query
- afs:from
- Useful values include: SEARCHBOX, ACP, FACET,
SPELLCHECK, PAGER, SORT, PROMOTE…
- Selected items
- Collecting tools named click (web service)
- Logging utility which feeds Analytics visitor data
- Has to be fully integrated
129
Visitor qualification
http://www.project.com http://project.afs-antidot.net
query ¡ query ¡ AFS ¡query ¡ + ¡HTTP ¡Header ¡(IP, ¡User-‑Agent) ¡ + ¡Cookies ¡(UserId, ¡SessionId) ¡
130
Hit Parade retrieval
- Most basic task when integrating eCommerce
search engine: Display most frequent expressions.
- Web service for this: analytics
131
Hit Parade retrieval
- A basic query to this web service looks like this:
https://bo-store.afs-antidot.net/ bo-ws/service/7000/instance/beta/ analytics/type/TOP_EXPR_WREPLY/ scale/MONTH? afsLog=USER&afs:login=login:// [account email]:[password]@BOWS
132
Hit Parade retrieval
- A basic query to this web service looks like this:
https://bo-store.afs-antidot.net/ bo-ws/service/7000/instance/beta/ analytics/type/TOP_EXPR_WREPLY/ scale/MONTH? afsLog=USER&afs:login=login:// [account email]:[password]@BOWS &afs:ouput=json
133
Support
- Ticketing
- mantis.antidot.net
- Contact
- Support mail : support@antidot.net
- Phone : 04 42 63 67 90
- Documentation
- http://doc-store.antidot.net/
134
Questions
AFS@Store