http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/0bdbf8fe/templates/leadscoring/quickstart/index.html
----------------------------------------------------------------------
diff --git a/templates/leadscoring/quickstart/index.html 
b/templates/leadscoring/quickstart/index.html
new file mode 100644
index 0000000..9e39b7d
--- /dev/null
+++ b/templates/leadscoring/quickstart/index.html
@@ -0,0 +1,487 @@
+<!DOCTYPE html><html><head><title>Quick Start - Lead Scoring Engine 
Template</title><meta charset="utf-8"/><meta content="IE=edge,chrome=1" 
http-equiv="X-UA-Compatible"/><meta name="viewport" 
content="width=device-width, initial-scale=1.0"/><meta class="swiftype" 
name="title" data-type="string" content="Quick Start - Lead Scoring Engine 
Template"/><link rel="canonical" 
href="https://docs.prediction.io/templates/leadscoring/quickstart/"/><link 
href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link 
href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link 
href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
 rel="stylesheet"/><link 
href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" 
rel="stylesheet"/><link href="/stylesheets/application-a2a2f408.css" 
rel="stylesheet" type="text/css"/><script 
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></s
 cript><script 
src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><script
 src="//use.typekit.net/pqo0itb.js"></script><script>try{Typekit.load({ async: 
true });}catch(e){}</script></head><body><div id="global"><header><div 
class="container" id="header-wrapper"><div class="row"><div 
class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a 
href="#"></a><a href="http://predictionio.incubator.apache.org/";><img 
alt="PredictionIO" id="logo" 
src="/images/logos/logo-ee2b9bb3.png"/></a></div><div id="menu-wrapper"><div 
id="pill-wrapper"><a class="pill left" 
href="/gallery/template-gallery">TEMPLATES</a> <a class="pill right" 
href="//github.com/apache/incubator-predictionio/">OPEN 
SOURCE</a></div></div><img class="mobile-search-bar-toggler hidden-md 
hidden-lg" 
src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div 
id="search-bar-row-wrapper"><div class="container-fluid" 
id="search-bar-row"><div class="row"><div cla
 ss="col-md-9 col-sm-11 col-xs-11"><div class="hidden-md hidden-lg" 
id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Quick Start - Lead 
Scoring Engine Template</h4></div><h4 class="hidden-sm hidden-xs">PredictionIO 
Docs</h4></div><div class="col-md-3 col-sm-1 col-xs-1 hidden-md hidden-lg"><img 
id="left-menu-indicator" 
src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3 
col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form 
class="search-form"><img class="search-box-toggler hidden-xs hidden-sm" 
src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img 
src="/images/icons/search-glass-704bd4ff.png"/><input type="text" 
id="st-search-input" class="st-search-input" placeholder="Search 
Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg" 
src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div 
class="mobile-left-menu-toggler hidden-md 
hidden-lg"></div></div></div></div><div id="page" class="cont
 ainer-fluid"><div class="row"><div id="left-menu-wrapper" 
class="col-md-3"><nav id="nav-main"><ul><li class="level-1"><a 
class="expandible" href="/"><span>Apache PredictionIO (incubating) 
Documentation</span></a><ul><li class="level-2"><a class="final" 
href="/"><span>Welcome to Apache PredictionIO 
(incubating)</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Started</span></a><ul><li class="level-2"><a 
class="final" href="/start/"><span>A Quick Intro</span></a></li><li 
class="level-2"><a class="final" href="/install/"><span>Installing Apache 
PredictionIO (incubating)</span></a></li><li class="level-2"><a class="final" 
href="/start/download/"><span>Downloading an Engine Template</span></a></li><li 
class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your 
First Engine</span></a></li><li class="level-2"><a class="final" 
href="/start/customize/"><span>Customizing the 
Engine</span></a></li></ul></li><li class="level-1"><a class="
 expandible" href="#"><span>Integrating with Your App</span></a><ul><li 
class="level-2"><a class="final" href="/appintegration/"><span>App Integration 
Overview</span></a></li><li class="level-2"><a class="expandible" 
href="/sdk/"><span>List of SDKs</span></a><ul><li class="level-3"><a 
class="final" href="/sdk/java/"><span>Java & Android SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/php/"><span>PHP 
SDK</span></a></li><li class="level-3"><a class="final" 
href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a 
class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered 
SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web 
Service</span></a></li><li class="level-2"><a class="final" 
href="/cli/#engine-commands"><
 span>Engine Command-line Interface</span></a></li><li class="level-2"><a 
class="final" href="/deploy/monitoring/"><span>Monitoring 
Engine</span></a></li><li class="level-2"><a class="final" 
href="/deploy/engineparams/"><span>Setting Engine Parameters</span></a></li><li 
class="level-2"><a class="final" href="/deploy/enginevariants/"><span>Deploying 
Multiple Engine Variants</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Customizing an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/customize/"><span>Learning 
DASE</span></a></li><li class="level-2"><a class="final" 
href="/customize/dase/"><span>Implement DASE</span></a></li><li 
class="level-2"><a class="final" 
href="/customize/troubleshooting/"><span>Troubleshooting Engine 
Development</span></a></li><li class="level-2"><a class="final" 
href="/api/current/#package"><span>Engine Scala 
APIs</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Collecting and A
 nalyzing Data</span></a><ul><li class="level-2"><a class="final" 
href="/datacollection/"><span>Event Server Overview</span></a></li><li 
class="level-2"><a class="final" href="/cli/#event-server-commands"><span>Event 
Server Command-line Interface</span></a></li><li class="level-2"><a 
class="final" href="/datacollection/eventapi/"><span>Collecting Data with 
REST/SDKs</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/webhooks/"><span>Unifying Multichannel Data with 
Webhooks</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/channel/"><span>Channel</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/batchimport/"><span>Importing Data in 
Batch</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/analytics/"><span>Using Analytics 
Tools</span></a></li></ul></li><li class="level-1"><a class="exp
 andible" href="#"><span>Choosing an Algorithm(s)</span></a><ul><li 
class="level-2"><a class="final" href="/algorithm/"><span>Built-in Algorithm 
Libraries</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/switch/"><span>Switching to Another 
Algorithm</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/multiple/"><span>Combining Multiple 
Algorithms</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/custom/"><span>Adding Your Own 
Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>ML Tuning and Evaluation</span></a><ul><li class="level-2"><a 
class="final" href="/evaluation/"><span>Overview</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/evaluationdashboard/"><span>Evaluation 
Dashboard</span></a></li><li class="level-2"><a class="final" 
href="/evaluation/metricc
 hoose/"><span>Choosing Evaluation Metrics</span></a></li><li 
class="level-2"><a class="final" href="/evaluation/metricbuild/"><span>Building 
Evaluation Metrics</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>System Architecture</span></a><ul><li 
class="level-2"><a class="final" href="/system/"><span>Architecture 
Overview</span></a></li><li class="level-2"><a class="final" 
href="/system/anotherdatastore/"><span>Using Another Data 
Store</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Engine Template Gallery</span></a><ul><li class="level-2"><a 
class="final" href="/gallery/template-gallery/"><span>Browse</span></a></li><li 
class="level-2"><a class="final" 
href="/community/submit-template/"><span>Submit your Engine as a 
Template</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Demo Tutorials</span></a><ul><li class="level-2"><a 
class="final" href="/demo/tapster/"><span>Comics Recommendat
 ion Demo</span></a></li><li class="level-2"><a class="final" 
href="/demo/community/"><span>Community Contributed Demo</span></a></li><li 
class="level-2"><a class="final" href="/demo/textclassification/"><span>Text 
Classification Engine Tutorial</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="/community/"><span>Getting Involved</span></a><ul><li 
class="level-2"><a class="final" 
href="/community/contribute-code/"><span>Contribute Code</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-documentation/"><span>Contribute 
Documentation</span></a></li><li class="level-2"><a class="final" 
href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-webhook/"><span>Contribute a 
Webhook</span></a></li><li class="level-2"><a class="final" 
href="/community/projects/"><span>Community 
Projects</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><
 span>Getting Help</span></a><ul><li class="level-2"><a class="final" 
href="/resources/faq/"><span>FAQs</span></a></li><li class="level-2"><a 
class="final" href="/support/"><span>Support</span></a></li></ul></li><li 
class="level-1"><a class="expandible" 
href="#"><span>Resources</span></a><ul><li class="level-2"><a class="final" 
href="/resources/intellij/"><span>Developing Engines with IntelliJ 
IDEA</span></a></li><li class="level-2"><a class="final" 
href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li 
class="level-2"><a class="final" 
href="/resources/glossary/"><span>Glossary</span></a></li></ul></li></ul></nav></div><div
 class="col-md-9 col-sm-12"><div class="content-header hidden-md 
hidden-lg"><div id="page-title"><h1>Quick Start - Lead Scoring Engine 
Template</h1></div></div><div id="table-of-content-wrapper"><h5>On this 
page</h5><aside id="table-of-contents"><ul> <li> <a 
href="#overview">Overview</a> </li> <li> <a href="#usage">Usage</a> </li> <li> 
<a href="#1
 -install-and-run-predictionio">1. Install and Run PredictionIO</a> </li> <li> 
<a href="#2-create-a-new-engine-from-an-engine-template">2. Create a new Engine 
from an Engine Template</a> </li> <li> <a 
href="#3-generate-an-app-id-and-access-key">3. Generate an App ID and Access 
Key</a> </li> <li> <a href="#4-collecting-data">4. Collecting Data</a> </li> 
<li> <a href="#5-deploy-the-engine-as-a-service">5. Deploy the Engine as a 
Service</a> </li> <li> <a href="#6-use-the-engine">6. Use the Engine</a> </li> 
</ul> </aside><hr/><a id="edit-page-link" 
href="https://github.com/apache/incubator-predictionio/tree/livedoc/docs/manual/source/templates/leadscoring/quickstart.html.md.erb";><img
 src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div 
class="content-header hidden-sm hidden-xs"><div id="page-title"><h1>Quick Start 
- Lead Scoring Engine Template</h1></div></div><div class="content"><h2 
id='overview' class='header-anchors'>Overview</h2><p>This engine template 
predicts
  the probability of an user will convert (conversion event by user) in the 
current session.</p><div class="alert-message warning"><p>This template 
requires PredictionIO version &gt;= 0.9.0</p></div><h2 id='usage' 
class='header-anchors'>Usage</h2><h3 id='event-data-requirements' 
class='header-anchors'>Event Data Requirements</h3><p>By default, the template 
requires the following events to be collected:</p> <ul> <li>&#39;page view&#39; 
events with session ID</li> <li>the first page view event can optionally 
provide the browser and referrer ID</li> <li>user &#39;buy&#39; event with 
session ID</li> </ul> <p>The landing page ID, referrer ID, browser information 
and user&#39;s buy event will be used to train the model.</p><div 
class="alert-message note"><p>You can customize what the &quot;conversion&quot; 
event is. It&#39;s &quot;buy&quot; item event by default but it can be modified 
to others such as &quot;subscribe&quot;.</p></div><h3 id='input-query' 
class='header-anchors'>Input Query<
 /h3> <ul> <li>Landing page ID</li> <li>Referrer ID</li> <li>Browser</li> </ul> 
<h3 id='output-predictedresult' class='header-anchors'>Output 
PredictedResult</h3> <ul> <li>score</li> </ul> <h2 
id='1.-install-and-run-predictionio' class='header-anchors'>1. Install and Run 
PredictionIO</h2><p>First you need to <a href="/install">install PredictionIO 
0.10.0-incubating</a> (if you haven&#39;t done it).</p><p>Let&#39;s say you 
have installed PredictionIO at <code>/home/yourname/PredictionIO/</code>. For 
convenience, add PredictionIO&#39;s binary command path to your 
<code>PATH</code>, i.e. <code>/home/yourname/PredictionIO/bin</code>:</p><div 
class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td 
class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td 
class="code"><pre><span class="gp">$ </span><span class="nv">PATH</span><span 
class="o">=</span><span 
class="nv">$PATH</span>:/home/yourname/PredictionIO/bin; <span 
class="nb">export </span>PATH
+</pre></td></tr></tbody></table> </div> <div class="alert-message note"><p>If 
you launched <strong>PredictionIO AWS instance</strong>, the path is located at 
<code>/opt/PredictionIO/bin</code>.</p></div><p>Once you have completed the 
installation process, please make sure all the components (PredictionIO Event 
Server, Elasticsearch, and HBase) are up and running.</p><div 
class="alert-message note"><p>If you launched <strong>PredictionIO AWS 
instance</strong>, you can skip <code>pio-start-all</code>. All components 
should have been started automatically.</p></div><p>If you are using PostgreSQL 
or MySQL, run the following to start PredictionIO Event Server:</p><div 
class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td 
class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td 
class="code"><pre><span class="gp">$ </span>pio eventserver &amp;
+</pre></td></tr></tbody></table> </div> <p>If instead you are running HBase 
and Elasticsearch, run the following to start all PredictionIO Event Server, 
HBase, and Elasticsearch:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ 
</span>pio-start-all
+</pre></td></tr></tbody></table> </div> <p>You can check the status by 
running:</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>pio 
status
+</pre></td></tr></tbody></table> </div> <p>If everything is OK, you should see 
the following outputs:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
+2
+3
+4</pre></td><td class="code"><pre>...
+
+<span class="o">(</span>sleeping 5 seconds <span class="k">for </span>all 
messages to show up...<span class="o">)</span>
+Your system is all ready to go.
+</pre></td></tr></tbody></table> </div> <div class="alert-message note"><p>To 
further troubleshoot, please see <a 
href="/resources/faq/#using-predictionio">FAQ - Using 
PredictionIO</a>.</p></div> <p><a href="#"></a></p> <h2 
id='2.-create-a-new-engine-from-an-engine-template' class='header-anchors'>2. 
Create a new Engine from an Engine Template</h2><p>Now let&#39;s create a new 
engine called <em>MyLeadScoring</em> by downloading the Lead Scoring Engine 
Template. Go to a directory where you want to put your engine and run the 
following:</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1
+2</pre></td><td class="code"><pre><span class="gp">$ </span>pio template get 
PredictionIO/template-scala-parallel-leadscoring MyLeadScoring
+<span class="gp">$ </span><span class="nb">cd </span>MyLeadScoring
+</pre></td></tr></tbody></table> </div> <p>A new directory 
<em>MyLeadScoring</em> is created, where you can find the downloaded engine 
template.</p> <p><a href="#"></a></p> <h2 
id='3.-generate-an-app-id-and-access-key' class='header-anchors'>3. Generate an 
App ID and Access Key</h2><p>You will need to create a new App in PredictionIO 
to store all the data of your app. The data collected will be used for machine 
learning modeling.</p><p>Let&#39;s assume you want to use this engine in an 
application named &quot;MyApp1&quot;. Run the following to create a new app 
&quot;MyApp1&quot;:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ 
</span>pio app new MyApp1
+</pre></td></tr></tbody></table> </div> <p>You should find the following in 
the console output:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
+2
+3
+4
+5
+6</pre></td><td class="code"><pre>...
+<span class="o">[</span>INFO] <span class="o">[</span>App<span 
class="nv">$]</span> Initialized Event Store <span class="k">for </span>this 
app ID: 1.
+<span class="o">[</span>INFO] <span class="o">[</span>App<span 
class="nv">$]</span> Created new app:
+<span class="o">[</span>INFO] <span class="o">[</span>App<span 
class="nv">$]</span>       Name: MyApp1
+<span class="o">[</span>INFO] <span class="o">[</span>App<span 
class="nv">$]</span>         ID: 1
+<span class="o">[</span>INFO] <span class="o">[</span>App<span 
class="nv">$]</span> Access Key: 
3mZWDzci2D5YsqAnqNnXH9SB6Rg3dsTBs8iHkK6X2i54IQsIZI1eEeQQyMfs7b3F
+</pre></td></tr></tbody></table> </div> <p>Note that <em>App ID</em><em>, 
**Access Key</em>* are created for this App &quot;MyApp1&quot;. You will need 
the <strong>Access Key</strong> when you collect data with EventServer for this 
App.</p><p>You can list all of the apps created its corresponding ID and Access 
Key by running the following command:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ 
</span>pio app list
+</pre></td></tr></tbody></table> </div> <p>You should see a list of apps 
created. For example:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
+2
+3
+4</pre></td><td class="code"><pre><span class="o">[</span>INFO] <span 
class="o">[</span>App<span class="nv">$]</span>                 Name |   ID |   
                                                    Access Key | Allowed 
Event<span class="o">(</span>s<span class="o">)</span>
+<span class="o">[</span>INFO] <span class="o">[</span>App<span 
class="nv">$]</span>               MyApp1 |    1 | 
3mZWDzci2D5YsqAnqNnXH9SB6Rg3dsTBs8iHkK6X2i54IQsIZI1eEeQQyMfs7b3F | <span 
class="o">(</span>all<span class="o">)</span>
+<span class="o">[</span>INFO] <span class="o">[</span>App<span 
class="nv">$]</span>               MyApp2 |    2 | 
io5lz6Eg4m3Xe4JZTBFE13GMAf1dhFl6ZteuJfrO84XpdOz9wRCrDU44EUaYuXq5 | <span 
class="o">(</span>all<span class="o">)</span>
+<span class="o">[</span>INFO] <span class="o">[</span>App<span 
class="nv">$]</span> Finished listing 2 app<span class="o">(</span>s<span 
class="o">)</span>.
+</pre></td></tr></tbody></table> </div> <p><a href="#"></a></p> <h2 
id='4.-collecting-data' class='header-anchors'>4. Collecting Data</h2><p>Next, 
let&#39;s collect training data for this Engine. By default, Lead Scoring 
Engine Template supports the following entities: <strong>user</strong>, 
<strong>page</strong>, and <strong>item</strong>. An user views a page, and 
buys an item.</p><p>Note that a &quot;sessionId&quot; property is required to 
indicate these events happen in the same session. In the first visit of a user, 
you should specify the optional &quot;referrral ID&quot; and 
&quot;browser&quot; information. These are used to determine where the user 
comes from and the browser information.</p><p>In summary, this template 
requires user-view-page event and user-buy-item events with the session ID, 
referrer ID and browser properties.</p><p>You can send these events to 
PredictionIO Event Server in real-time easily by making a HTTP request or 
through the provided SDK. Please see <a 
 href="/appintegration/">App Integration Overview</a> for more details how to 
integrate your app with SDK.</p><p>Let&#39;s try sending events to EventServer 
with the following <code>curl</code> commands (The corresponding SDK code is 
showed in other tabs).</p><p>Replace <code>&lt;ACCCESS_KEY&gt;</code> by the 
Access Key generated in above steps. Note that <code>localhost:7070</code> is 
the default URL of the Event Server.</p><p>For convenience, set your access key 
to the shell variable, run:</p><p><code>$ 
ACCESS_KEY=&lt;ACCESS_KEY&gt;</code></p> <p><a href="#"></a></p> <p>For 
example, when an user with ID u0 views a URL page &quot;example.com/page0&quot; 
on time <code>2014-11-02T09:39:45.618-08:00</code>, with session ID 
&quot;akdj230fj8ass&quot; (current time will be used if eventTime is not 
specified) you can send the event to Event Server. Run the following 
<code>curl</code> command:</p><div class="tabs"> <ul class="control"> <li 
data-lang="json"><a href="#tab-5fb119ac-29f1-4bf4-9
 357-08aea10740e9">REST API</a></li> <li data-lang="python"><a 
href="#tab-aab1ae89-33ae-47ad-a05f-8b895179c363">Python SDK</a></li> <li 
data-lang="php"><a href="#tab-f133e116-f8da-4277-9afc-d2bf1b83d6e9">PHP 
SDK</a></li> <li data-lang="ruby"><a 
href="#tab-747699ca-37cd-4a5c-bd38-6246909aa406">Ruby SDK</a></li> <li 
data-lang="java"><a href="#tab-50673dfe-edf8-4982-a345-c31870c859b9">Java 
SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" 
id="tab-5fb119ac-29f1-4bf4-9357-08aea10740e9"> <div class="highlight shell"> 
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" 
style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15</pre></td> <td class="code"><pre><span class="gp">$ </span>curl -i -X POST 
http://localhost:7070/events.json?accessKey<span class="o">=</span><span 
class="nv">$ACCESS_KEY</span> <span class="se">\</span>
+-H <span class="s2">"Content-Type: application/json"</span> <span 
class="se">\</span>
+-d <span class="s1">'{
+  "event" : "view",
+  "entityType" : "user",
+  "entityId" : "u0",
+  "targetEntityType" : "page",
+  "targetEntityId" : "example.com/page0",
+  "properties" : {
+    "sessionId" : "akdj230fj8ass",
+    "referrerId" : "referrer0.com",
+    "browser" : "Firefox"
+  }
+  "eventTime" : "2014-11-02T09:39:45.618-08:00"
+}'</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" 
data-lang="python" id="tab-aab1ae89-33ae-47ad-a05f-8b895179c363"> <div 
class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23</pre></td> <td class="code"><pre><span class="kn">import</span> <span 
class="nn">predictionio</span>
+
+<span class="n">client</span> <span class="o">=</span> <span 
class="n">predictionio</span><span class="o">.</span><span 
class="n">EventClient</span><span class="p">(</span>
+  <span class="n">access_key</span><span class="o">=&lt;</span><span 
class="n">ACCESS</span> <span class="n">KEY</span><span 
class="o">&gt;</span><span class="p">,</span>
+  <span class="n">url</span><span class="o">=&lt;</span><span 
class="n">URL</span> <span class="n">OF</span> <span 
class="n">EVENTSERVER</span><span class="o">&gt;</span><span class="p">,</span>
+  <span class="n">threads</span><span class="o">=</span><span 
class="mi">5</span><span class="p">,</span>
+  <span class="n">qsize</span><span class="o">=</span><span 
class="mi">500</span>
+<span class="p">)</span>
+
+<span class="c"># A user views a page</span>
+
+<span class="n">client</span><span class="o">.</span><span 
class="n">create_event</span><span class="p">(</span>
+  <span class="n">event</span><span class="o">=</span><span 
class="s">"view"</span><span class="p">,</span>
+  <span class="n">entity_type</span><span class="o">=</span><span 
class="s">"user"</span><span class="p">,</span>
+  <span class="n">entity_id</span><span class="o">=&lt;</span><span 
class="n">USER</span> <span class="n">ID</span><span class="o">&gt;</span><span 
class="p">,</span>
+  <span class="n">target_entity_type</span><span class="o">=</span><span 
class="s">"page"</span><span class="p">,</span>
+  <span class="n">target_entity_id</span><span class="o">=&lt;</span><span 
class="n">PAGE</span> <span class="n">ID</span><span class="o">&gt;</span><span 
class="p">,</span>
+  <span class="n">properties</span> <span class="o">=</span> <span 
class="p">{</span>
+    <span class="s">"sessionId"</span><span class="p">:</span> <span 
class="o">&lt;</span><span class="n">SESSION</span> <span 
class="n">ID</span><span class="o">&gt;</span><span class="p">,</span> <span 
class="c"># required</span>
+    <span class="s">"referrerId"</span><span class="p">:</span> <span 
class="o">&lt;</span><span class="n">REFERRER</span> <span 
class="n">ID</span><span class="o">&gt;</span><span class="p">,</span> <span 
class="c"># optinal. but should specify this if you have this information when 
user views the landing page</span>
+    <span class="s">"browser"</span><span class="p">:</span> <span 
class="o">&lt;</span><span class="n">BROWSER</span><span class="o">&gt;</span> 
<span class="c"># optinal. but should specify this if you have this information 
when user views the landing page</span>
+  <span class="p">}</span>
+<span class="p">)</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" 
data-lang="php" id="tab-f133e116-f8da-4277-9afc-d2bf1b83d6e9"> <div 
class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20</pre></td> <td class="code"><pre><span class="cp">&lt;?php</span>
+<span class="k">require_once</span><span class="p">(</span><span 
class="s2">"vendor/autoload.php"</span><span class="p">);</span>
+<span class="k">use</span> <span 
class="nx">predictionio\EventClient</span><span class="p">;</span>
+
+<span class="nv">$client</span> <span class="o">=</span> <span 
class="k">new</span> <span class="nx">EventClient</span><span 
class="p">(</span><span class="o">&lt;</span><span class="nx">ACCESS</span> 
<span class="nx">KEY</span><span class="o">&gt;</span><span class="p">,</span> 
<span class="o">&lt;</span><span class="nx">URL</span> <span 
class="nx">OF</span> <span class="nx">EVENTSERVER</span><span 
class="o">&gt;</span><span class="p">);</span>
+
+<span class="c1">// A user views a page
+</span><span class="nv">$client</span><span class="o">-&gt;</span><span 
class="na">createEvent</span><span class="p">(</span><span 
class="k">array</span><span class="p">(</span>
+  <span class="s1">'event'</span> <span class="o">=&gt;</span> <span 
class="s1">'view'</span><span class="p">,</span>
+  <span class="s1">'entityType'</span> <span class="o">=&gt;</span> <span 
class="s1">'user'</span><span class="p">,</span>
+  <span class="s1">'entityId'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="nx">USER</span> <span 
class="nx">ID</span><span class="o">&gt;</span><span class="p">,</span>
+  <span class="s1">'targetEntityType'</span> <span class="o">=&gt;</span> 
<span class="s1">'page'</span><span class="p">,</span>
+  <span class="s1">'targetEntityId'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="nx">PAGE</span> <span 
class="nx">ID</span><span class="o">&gt;</span><span class="p">,</span>
+  <span class="s1">'properties'</span> <span class="o">=&gt;</span> <span 
class="k">array</span><span class="p">(</span>
+    <span class="s1">'sessionId'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="nx">SESSION</span> <span 
class="nx">ID</span><span class="o">&gt;</span><span class="p">,</span>
+    <span class="s1">'referrerId'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="nx">REFERRER</span> <span 
class="nx">ID</span><span class="o">&gt;</span><span class="p">,</span>
+    <span class="s1">'browser'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="nx">BROWSER</span><span class="o">&gt;</span>
+  <span class="p">)</span>
+<span class="p">));</span>
+<span class="cp">?&gt;</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" 
data-lang="ruby" id="tab-747699ca-37cd-4a5c-bd38-6246909aa406"> <div 
class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17</pre></td> <td class="code"><pre><span class="c1"># Create a client 
object.</span>
+<span class="n">client</span> <span class="o">=</span> <span 
class="no">PredictionIO</span><span class="o">::</span><span 
class="no">EventClient</span><span class="p">.</span><span 
class="nf">new</span><span class="p">(</span><span class="o">&lt;</span><span 
class="no">ACCESS</span> <span class="no">KEY</span><span 
class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span 
class="no">URL</span> <span class="no">OF</span> <span 
class="no">EVENTSERVER</span><span class="o">&gt;</span><span class="p">)</span>
+
+<span class="c1"># A user views a page.</span>
+<span class="n">client</span><span class="p">.</span><span 
class="nf">create_event</span><span class="p">(</span>
+  <span class="s1">'view'</span><span class="p">,</span>
+  <span class="s1">'user'</span><span class="p">,</span>
+  <span class="o">&lt;</span><span class="no">USER</span> <span 
class="no">ID</span><span class="o">&gt;</span><span class="p">,</span> <span 
class="p">{</span>
+    <span class="s1">'targetEntityType'</span> <span class="o">=&gt;</span> 
<span class="s1">'page'</span><span class="p">,</span>
+    <span class="s1">'targetEntityId'</span> <span class="o">=&gt;</span> 
<span class="o">&lt;</span><span class="no">PAGE</span> <span 
class="no">ID</span><span class="o">&gt;</span><span class="p">,</span>
+    <span class="s1">'properties'</span> <span class="o">=&gt;</span> <span 
class="p">{</span>
+      <span class="s1">'sessionId'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="no">SESSION</span> <span 
class="no">ID</span><span class="o">&gt;</span><span class="p">,</span>
+      <span class="s1">'referrerId'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="no">REFERRER</span> <span 
class="no">ID</span><span class="o">&gt;</span><span class="p">,</span>
+      <span class="s1">'browser'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="no">BROWSER</span><span class="o">&gt;</span>
+    <span class="p">}</span>
+  <span class="p">}</span>
+<span class="p">)</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" 
data-lang="java" id="tab-50673dfe-edf8-4982-a345-c31870c859b9"> <div 
class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18</pre></td> <td class="code"><pre><span class="kn">import</span> <span 
class="nn">org.apache.predictionio.Event</span><span class="o">;</span>
+<span class="kn">import</span> <span 
class="nn">org.apache.predictionio.EventClient</span><span class="o">;</span>
+
+<span class="kn">import</span> <span 
class="nn">com.google.common.collect.ImmutableList</span><span 
class="o">;</span>
+
+<span class="n">EventClient</span> <span class="n">client</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">EventClient</span><span class="o">(&lt;</span><span 
class="n">ACCESS</span> <span class="n">KEY</span><span class="o">&gt;,</span> 
<span class="o">&lt;</span><span class="n">URL</span> <span class="n">OF</span> 
<span class="n">EVENTSERVER</span><span class="o">&gt;);</span>
+
+<span class="c1">// A user views a page</span>
+<span class="n">Event</span> <span class="n">viewEvent</span> <span 
class="o">=</span> <span class="k">new</span> <span class="n">Event</span><span 
class="o">()</span>
+    <span class="o">.</span><span class="na">event</span><span 
class="o">(</span><span class="s">"view"</span><span class="o">)</span>
+    <span class="o">.</span><span class="na">entityType</span><span 
class="o">(</span><span class="s">"user"</span><span class="o">)</span>
+    <span class="o">.</span><span class="na">entityId</span><span 
class="o">(&lt;</span><span class="n">USER_ID</span><span class="o">&gt;)</span>
+    <span class="o">.</span><span class="na">targetEntityType</span><span 
class="o">(</span><span class="s">"page"</span><span class="o">)</span>
+    <span class="o">.</span><span class="na">targetEntityId</span><span 
class="o">(&lt;</span><span class="n">PAGE_ID</span><span 
class="o">&gt;);</span>
+    <span class="o">.</span><span class="na">property</span><span 
class="o">(</span><span class="s">"sessionId"</span><span class="o">,</span> 
<span class="s">"&lt;SESSION ID&gt;"</span><span class="o">)</span>
+    <span class="o">.</span><span class="na">property</span><span 
class="o">(</span><span class="s">"referrerId"</span><span class="o">,</span> 
<span class="s">"&lt;REFERRER ID&gt;"</span><span class="o">)</span>
+    <span class="o">.</span><span class="na">property</span><span 
class="o">(</span><span class="s">"browser"</span><span class="o">,</span> 
<span class="s">"&lt;BROWSER&gt;"</span><span class="o">);</span>
+<span class="n">client</span><span class="o">.</span><span 
class="na">createEvent</span><span class="o">(</span><span 
class="n">viewEvent</span><span class="o">);</span>
+</pre></td> </tr></tbody></table> </div> </div> </div> <p>In the same browing 
session &quot;akdj230fj8ass&quot;, the user with ID u0 buys an item i0 on time 
<code>2014-11-02T09:42:00.123-08:00</code> (current time will be used if 
eventTime is not specified), you can send the following buy event. Run the 
following <code>curl</code> command:</p><div class="tabs"> <ul class="control"> 
<li data-lang="json"><a href="#tab-db592bca-24d2-4a9b-9f01-01eec52a5599">REST 
API</a></li> <li data-lang="python"><a 
href="#tab-dffc3e85-3dd0-4272-9f38-2e0de160252c">Python SDK</a></li> <li 
data-lang="php"><a href="#tab-e53259ea-36df-49b7-ae9e-d2903666fee9">PHP 
SDK</a></li> <li data-lang="ruby"><a 
href="#tab-dbee16ec-196b-4bd5-8c66-b81369bda5d4">Ruby SDK</a></li> <li 
data-lang="java"><a href="#tab-3a69f009-6c0c-4c01-b2a8-f2279c65b6c7">Java 
SDK</a></li> </ul> <div data-tab="REST API" data-lang="json" 
id="tab-db592bca-24d2-4a9b-9f01-01eec52a5599"> <div class="highlight shell"> 
<table style="border-spacing: 
 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre 
class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13</pre></td> <td class="code"><pre><span class="gp">$ </span>curl -i -X POST 
http://localhost:7070/events.json?accessKey<span class="o">=</span><span 
class="nv">$ACCESS_KEY</span> <span class="se">\</span>
+-H <span class="s2">"Content-Type: application/json"</span> <span 
class="se">\</span>
+-d <span class="s1">'{
+  "event" : "buy",
+  "entityType" : "user",
+  "entityId" : "u0",
+  "targetEntityType" : "item",
+  "targetEntityId" : "i0",
+  "properties" : {
+    "sessionId" : "akdj230fj8ass"
+  }
+  "eventTime" : "2014-11-02T09:42:00.123-08:00"
+}'</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" 
data-lang="python" id="tab-dffc3e85-3dd0-4272-9f38-2e0de160252c"> <div 
class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12</pre></td> <td class="code"><pre><span class="c"># A user buys an 
item</span>
+
+<span class="n">client</span><span class="o">.</span><span 
class="n">create_event</span><span class="p">(</span>
+  <span class="n">event</span><span class="o">=</span><span 
class="s">"buy"</span><span class="p">,</span>
+  <span class="n">entity_type</span><span class="o">=</span><span 
class="s">"user"</span><span class="p">,</span>
+  <span class="n">entity_id</span><span class="o">=&lt;</span><span 
class="n">USER</span> <span class="n">ID</span><span class="o">&gt;</span><span 
class="p">,</span>
+  <span class="n">target_entity_type</span><span class="o">=</span><span 
class="s">"item"</span><span class="p">,</span>
+  <span class="n">target_entity_id</span><span class="o">=&lt;</span><span 
class="n">ITEM</span> <span class="n">ID</span><span class="o">&gt;</span><span 
class="p">,</span>
+  <span class="n">properties</span> <span class="o">=</span> <span 
class="p">{</span>
+    <span class="s">"sessionId"</span><span class="p">:</span> <span 
class="o">&lt;</span><span class="n">SESSION</span> <span 
class="n">ID</span><span class="o">&gt;</span><span class="p">,</span> <span 
class="c"># required</span>
+  <span class="p">}</span>
+<span class="p">)</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" 
data-lang="php" id="tab-e53259ea-36df-49b7-ae9e-d2903666fee9"> <div 
class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14</pre></td> <td class="code"><pre><span class="cp">&lt;?php</span>
+<span class="c1">// A user buys an item
+</span><span class="nv">$client</span><span class="o">-&gt;</span><span 
class="na">createEvent</span><span class="p">(</span><span 
class="k">array</span><span class="p">(</span>
+  <span class="s1">'event'</span> <span class="o">=&gt;</span> <span 
class="s1">'buy'</span><span class="p">,</span>
+  <span class="s1">'entityType'</span> <span class="o">=&gt;</span> <span 
class="s1">'user'</span><span class="p">,</span>
+  <span class="s1">'entityId'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="nx">USER</span> <span 
class="nx">ID</span><span class="o">&gt;</span><span class="p">,</span>
+  <span class="s1">'targetEntityType'</span> <span class="o">=&gt;</span> 
<span class="s1">'item'</span><span class="p">,</span>
+  <span class="s1">'targetEntityId'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="nx">ITEM</span> <span 
class="nx">ID</span><span class="o">&gt;</span><span class="p">,</span>
+  <span class="s1">'properties'</span> <span class="o">=&gt;</span> <span 
class="k">array</span><span class="p">(</span>
+    <span class="s1">'sessionId'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="nx">SESSION</span> <span 
class="nx">ID</span><span class="o">&gt;</span>
+  <span class="p">)</span>
+<span class="p">));</span>
+
+<span class="cp">?&gt;</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" 
data-lang="ruby" id="tab-dbee16ec-196b-4bd5-8c66-b81369bda5d4"> <div 
class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12</pre></td> <td class="code"><pre><span class="c1"># A user buys an 
item.</span>
+<span class="n">client</span><span class="p">.</span><span 
class="nf">create_event</span><span class="p">(</span>
+  <span class="s1">'buy'</span><span class="p">,</span>
+  <span class="s1">'user'</span><span class="p">,</span>
+  <span class="o">&lt;</span><span class="no">USER</span> <span 
class="no">ID</span><span class="o">&gt;</span><span class="p">,</span> <span 
class="p">{</span>
+    <span class="s1">'targetEntityType'</span> <span class="o">=&gt;</span> 
<span class="s1">'item'</span><span class="p">,</span>
+    <span class="s1">'targetEntityId'</span> <span class="o">=&gt;</span> 
<span class="o">&lt;</span><span class="no">ITEM</span> <span 
class="no">ID</span><span class="o">&gt;</span><span class="p">,</span>
+    <span class="s1">'properties'</span> <span class="o">=&gt;</span> <span 
class="p">{</span>
+      <span class="s1">'sessionId'</span> <span class="o">=&gt;</span> <span 
class="o">&lt;</span><span class="no">SESSION</span> <span 
class="no">ID</span><span class="o">&gt;</span>
+    <span class="p">}</span>
+  <span class="p">}</span>
+<span class="p">)</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" 
data-lang="java" id="tab-3a69f009-6c0c-4c01-b2a8-f2279c65b6c7"> <div 
class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9</pre></td> <td class="code"><pre><span class="c1">// A user buys an 
item</span>
+<span class="n">Event</span> <span class="n">buyEvent</span> <span 
class="o">=</span> <span class="k">new</span> <span class="n">Event</span><span 
class="o">()</span>
+    <span class="o">.</span><span class="na">event</span><span 
class="o">(</span><span class="s">"buy"</span><span class="o">)</span>
+    <span class="o">.</span><span class="na">entityType</span><span 
class="o">(</span><span class="s">"user"</span><span class="o">)</span>
+    <span class="o">.</span><span class="na">entityId</span><span 
class="o">(&lt;</span><span class="n">USER_ID</span><span class="o">&gt;)</span>
+    <span class="o">.</span><span class="na">targetEntityType</span><span 
class="o">(</span><span class="s">"item"</span><span class="o">)</span>
+    <span class="o">.</span><span class="na">targetEntityId</span><span 
class="o">(&lt;</span><span class="n">ITEM_ID</span><span class="o">&gt;)</span>
+    <span class="o">.</span><span class="na">property</span><span 
class="o">(</span><span class="s">"sessionId"</span><span class="o">,</span> 
<span class="s">"&lt;SESSION ID&gt;"</span><span class="o">);</span>
+<span class="n">client</span><span class="o">.</span><span 
class="na">createEvent</span><span class="o">(</span><span 
class="n">buyEvent</span><span class="o">);</span>
+</pre></td> </tr></tbody></table> </div> </div> </div> <p><h3 
id='query-event-server' class='header-anchors'>Query Event Server</h3><p>Now 
let&#39;s query the EventServer and see if these events are imported 
successfully.</p><p>Go to following URL with your browser:</p><p><code><a 
href="http://localhost:7070/events.json?accessKey=&amp;lt;YOUR_ACCESS_KEY";>http://localhost:7070/events.json?accessKey=&amp;lt;YOUR_ACCESS_KEY</a>&gt;</code></p><p>or
 run the following command in terminal:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ 
</span>curl -i -X GET <span class="s2">&quot;<a 
href="http://localhost:7070/events.json?accessKey=";>http://localhost:7070/events.json?accessKey=</a></span><span
 class="nv">$ACCESS_KEY</span><span class="s2">&quot;</span>
+</pre></td></tr></tbody></table> </div> <div class="alert-message 
note"><p>Note that you should quote the entire URL by using single or double 
quotes when you run the <code>curl</code> command.</p></div><p>It should return 
the imported events in JSON format. You can refer to <a 
href="/datacollection/eventapi/#debugging-recipes">Event Server Debugging 
Recipes</a> for more different ways to query Event Server.</p></p><h3 
id='import-more-sample-data' class='header-anchors'>Import More Sample 
Data</h3><p>This engine requires more data in order to train a useful model. 
Instead of sending more events one by one in real time, for quickstart 
demonstration purpose, we are going to use a script to import more events in 
batch.</p> <p>A Python import script <code>import_eventserver.py</code> is 
provided to import sample data. The sample data includes 50 sessions of events. 
In each session, a randomly selected user (with user ID &quot;u1&quot; to 
&quot;u10&quot;) lands on a page (randomly select
 ed from example.com/page1 to example.com/page20) with referrerId (randomly 
selected from referrer1.com to referrer10.com) and browser information. The 
user may view more pages, and may or may not buy an item (with item ID 
&quot;i1&quot; to &quot;i50&quot;).</p><p>First, you will need to install 
Python SDK in order to run the sample data import script. To install Python 
SDK, run:</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>pip 
install predictionio
+</pre></td></tr></tbody></table> </div> <p>or</p><div class="highlight 
shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" 
style="text-align: right"><pre class="lineno">1</pre></td><td 
class="code"><pre><span class="gp">$ </span>easy_install predictionio
+</pre></td></tr></tbody></table> </div> <div class="alert-message note"><p>You 
may need <code>sudo</code> access if you have permission issue. (ie. <code>sudo 
pip install predictionio</code>)</p></div> <p><a href="#"></a></p> <p>Make sure 
you are under the <code>MyLeadScoring</code> directory. Execute the following 
to import the data (Replace the value of access_key parameter with your 
<strong>Access Key</strong>):</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
+2</pre></td><td class="code"><pre><span class="gp">$ </span><span 
class="nb">cd </span>MyLeadScoring
+<span class="gp">$ </span>python data/import_eventserver.py --access_key 
3mZWDzci2D5YsqAnqNnXH9SB6Rg3dsTBs8iHkK6X2i54IQsIZI1eEeQQyMfs7b3F
+</pre></td></tr></tbody></table> </div> <p>You should see the following 
output:</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1
+2
+3
+4
+5
+6
+7
+8</pre></td><td class="code"><pre>...
+User u8 buys item i13
+session c347980abdf711e4b135b8e8560679ba
+User u5 lands on page example.com/page11 referrer referrer4.com browser Firefox
+User u5 views page example.com/page8
+User u5 views page example.com/page17
+User u5 buys item i5
+166 events are imported.
+</pre></td></tr></tbody></table> </div> <p><a href="#"></a></p><div 
class="alert-message warning"><p>If you see error <strong>TypeError: 
<strong>init</strong>() got an unexpected keyword argument 
&#39;access_key&#39;</strong>, please update the Python SDK to the latest 
version.</p></div><p>You can query the event server again as described 
previously to check the imported events.</p> <h2 
id='5.-deploy-the-engine-as-a-service' class='header-anchors'>5. Deploy the 
Engine as a Service</h2><p>Now you can build, train, and deploy the engine. 
First, make sure you are under the <code>MyLeadScoring</code> 
directory.</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ 
</span><span class="nb">cd </span>MyLeadScoring
+</pre></td></tr></tbody></table> </div> <h3 id='engine.json' 
class='header-anchors'>Engine.json</h3><p>Under the directory, you should find 
an <code>engine.json</code> file; this is where you specify parameters for the 
engine.</p><div class="alert-message warning"><p>Modify this file to make sure 
the <code>appName</code> parameter match your <strong>App Name</strong> you 
created earlier (e.g. &quot;MyApp1&quot; if you follow the 
quickstart).</p></div><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7</pre></td><td class="code"><pre>  ...
+  <span class="s2">"datasource"</span>: <span class="o">{</span>
+    <span class="s2">"params"</span> : <span class="o">{</span>
+      <span class="s2">"appName"</span>: <span class="s2">"MyApp1"</span>
+    <span class="o">}</span>
+  <span class="o">}</span>,
+  ...
+</pre></td></tr></tbody></table> </div> <div class="alert-message note"><p>You 
may see <code>appId</code> in engine.json instead, which means you are using 
old template. In this case, make sure the <code>appId</code> defined in the 
file match your <strong>App ID</strong>. Alternatively, you can download the 
latest version of the template or follow our <a 
href="/resources/upgrade/#upgrade-to-0.9.2">upgrade instructions</a> to modify 
the template to use <code>appName</code> as parameter.</p></div> <p><a 
href="#"></a></p> <p><h3 id='building' 
class='header-anchors'>Building</h3><p>Start with building your 
<em>MyLeadScoring</em> engine. Run the following command:</p><div 
class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td 
class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td 
class="code"><pre><span class="gp">$ </span>pio build --verbose
+</pre></td></tr></tbody></table> </div> <p>This command should take few 
minutes for the first time; all subsequent builds should be less than a minute. 
You can also run it without <code>--verbose</code> if you don&#39;t want to see 
all the log messages.</p><p>Upon successful build, you should see a console 
message similar to the following.</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1</pre></td><td class="code"><pre><span 
class="o">[</span>INFO] <span class="o">[</span>Console<span 
class="nv">$]</span> Your engine is ready <span class="k">for </span>training.
+</pre></td></tr></tbody></table> </div> <h3 id='training-the-predictive-model' 
class='header-anchors'>Training the Predictive Model</h3><p>To train your 
engine, run the following command:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ 
</span>pio train
+</pre></td></tr></tbody></table> </div> <p>When your engine is trained 
successfully, you should see a console message similar to the 
following.</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1</pre></td><td class="code"><pre><span class="o">[</span>INFO] 
<span class="o">[</span>CoreWorkflow<span class="nv">$]</span> Training 
completed successfully.
+</pre></td></tr></tbody></table> </div> <h3 id='deploying-the-engine' 
class='header-anchors'>Deploying the Engine</h3><p>Now your engine is ready to 
deploy. Run:</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>pio 
deploy
+</pre></td></tr></tbody></table> </div> <p>When the engine is deployed 
successfully and running, you should see a console message similar to the 
following:</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1
+2</pre></td><td class="code"><pre><span class="o">[</span>INFO] <span 
class="o">[</span>HttpListener] Bound to /0.0.0.0:8000
+<span class="o">[</span>INFO] <span class="o">[</span>MasterActor] Bind 
successful. Ready to serve.
+</pre></td></tr></tbody></table> </div> <p>Do not kill the deployed engine 
process.</p><p>By default, the deployed engine binds to <a 
href="http://localhost:8000";><a 
href="http://localhost:8000";>http://localhost:8000</a></a>. You can visit that 
page in your web browser to check its status.</p><p><img alt="Engine Status" 
src="/images/engine-server-3246414b.png"/></p></p><h2 id='6.-use-the-engine' 
class='header-anchors'>6. Use the Engine</h2><p>Now, You can retrieve the 
results. When a user lands on your page &quot;example.com/page9&quot;, with 
referrer &quot;referrer10.com&quot; and browser &quot;Firefox&quot;, you can 
get the predicted lead score by sending this JSON &#39;{ 
&quot;landingPageId&quot; : &quot;example.com/page9&quot;, 
&quot;referrerId&quot; : &quot;referrer10.com&quot;, &quot;browser&quot;: 
&quot;Firefox&quot; }&#39; to the deployed engine. The engine will return a 
JSON with the score.</p><p>Simply send a query by making a HTTP request or 
through the <code>EngineClient
 </code> of an SDK.</p><p>With the deployed engine running, open another 
temrinal and run the following <code>curl</code> command or use SDK to send the 
query:</p><div class="tabs"> <ul class="control"> <li data-lang="json"><a 
href="#tab-29ce3bfe-63bc-44ff-b43c-fdcca2010742">REST API</a></li> <li 
data-lang="python"><a href="#tab-c2b45bf9-fbe5-4c51-afd4-3d0dae497017">Python 
SDK</a></li> <li data-lang="php"><a 
href="#tab-298035a9-8a92-4ef1-84b2-7ca128917625">PHP SDK</a></li> <li 
data-lang="ruby"><a href="#tab-a796bc1a-4803-4f41-ac4f-a0e35bbd2aa7">Ruby 
SDK</a></li> <li data-lang="java"><a 
href="#tab-fec74f75-9b23-40d6-9726-7c7be7967583">Java SDK</a></li> </ul> <div 
data-tab="REST API" data-lang="json" 
id="tab-29ce3bfe-63bc-44ff-b43c-fdcca2010742"> <div class="highlight shell"> 
<table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" 
style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7</pre></td> <td class="code"><pre><span class="gp">$ </span>curl -H <span 
class="s2">"Content-Type: application/json"</span> <span class="se">\</span>
+-d <span class="s1">'{
+  "landingPageId" : "example.com/page9",
+  "referrerId" : "referrer10.com",
+  "browser": "Firefox" }'</span> <span class="se">\</span>
+http://localhost:8000/queries.json
+
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" 
data-lang="python" id="tab-c2b45bf9-fbe5-4c51-afd4-3d0dae497017"> <div 
class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7</pre></td> <td class="code"><pre><span class="kn">import</span> <span 
class="nn">predictionio</span>
+<span class="n">engine_client</span> <span class="o">=</span> <span 
class="n">predictionio</span><span class="o">.</span><span 
class="n">EngineClient</span><span class="p">(</span><span 
class="n">url</span><span class="o">=</span><span 
class="s">"http://localhost:8000";</span><span class="p">)</span>
+<span class="k">print</span> <span class="n">engine_client</span><span 
class="o">.</span><span class="n">send_query</span><span class="p">({</span>
+  <span class="s">"landingPageId"</span> <span class="p">:</span> <span 
class="s">"example.com/page9"</span><span class="p">,</span>
+  <span class="s">"referrerId"</span> <span class="p">:</span> <span 
class="s">"referrer10.com"</span><span class="p">,</span>
+  <span class="s">"browser"</span><span class="p">:</span> <span 
class="s">"Firefox"</span>
+<span class="p">})</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" 
data-lang="php" id="tab-298035a9-8a92-4ef1-84b2-7ca128917625"> <div 
class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15</pre></td> <td class="code"><pre><span class="cp">&lt;?php</span>
+<span class="k">require_once</span><span class="p">(</span><span 
class="s2">"vendor/autoload.php"</span><span class="p">);</span>
+<span class="k">use</span> <span 
class="nx">predictionio\EngineClient</span><span class="p">;</span>
+
+<span class="nv">$client</span> <span class="o">=</span> <span 
class="k">new</span> <span class="nx">EngineClient</span><span 
class="p">(</span><span class="s1">'http://localhost:8000'</span><span 
class="p">);</span>
+
+<span class="nv">$response</span> <span class="o">=</span> <span 
class="nv">$client</span><span class="o">-&gt;</span><span 
class="na">sendQuery</span><span class="p">(</span><span 
class="k">array</span><span class="p">(</span>
+  <span class="s1">'landingPageId'</span> <span class="o">=&gt;</span> <span 
class="s1">'example.com/page9'</span><span class="p">,</span>
+  <span class="s1">'referrerId'</span> <span class="o">=&gt;</span> <span 
class="s1">'referrer10.com'</span><span class="p">,</span>
+  <span class="s1">'browser'</span> <span class="o">=&gt;</span> <span 
class="s1">'Firefox'</span>
+<span class="p">));</span>
+
+<span class="nb">print_r</span><span class="p">(</span><span 
class="nv">$response</span><span class="p">);</span>
+
+<span class="cp">?&gt;</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" 
data-lang="ruby" id="tab-a796bc1a-4803-4f41-ac4f-a0e35bbd2aa7"> <div 
class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11</pre></td> <td class="code"><pre><span class="c1"># Create client 
object.</span>
+<span class="n">client</span> <span class="o">=</span> <span 
class="no">PredictionIO</span><span class="o">::</span><span 
class="no">EngineClient</span><span class="p">.</span><span 
class="nf">new</span><span class="p">(</span><span 
class="s1">'http://localhost:8000'</span><span class="p">)</span>
+
+<span class="c1"># Query PredictionIO.</span>
+<span class="n">response</span> <span class="o">=</span> <span 
class="n">client</span><span class="p">.</span><span 
class="nf">send_query</span><span class="p">(</span>
+  <span class="s1">'landingPageId'</span> <span class="o">=&gt;</span> <span 
class="s1">'example.com/page9'</span><span class="p">,</span>
+  <span class="s1">'referrerId'</span> <span class="o">=&gt;</span> <span 
class="s1">'referrer10.com'</span><span class="p">,</span>
+  <span class="s1">'browser'</span> <span class="o">=&gt;</span> <span 
class="s1">'Firefox'</span>
+<span class="p">)</span>
+
+<span class="nb">puts</span> <span class="n">response</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" 
data-lang="java" id="tab-fec74f75-9b23-40d6-9726-7c7be7967583"> <div 
class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16</pre></td> <td class="code"><pre><span class="kn">import</span> <span 
class="nn">com.google.common.collect.ImmutableMap</span><span class="o">;</span>
+<span class="kn">import</span> <span 
class="nn">com.google.common.collect.ImmutableList</span><span 
class="o">;</span>
+<span class="kn">import</span> <span 
class="nn">com.google.gson.JsonObject</span><span class="o">;</span>
+
+<span class="kn">import</span> <span 
class="nn">org.apache.predictionio.EngineClient</span><span class="o">;</span>
+
+<span class="c1">// create client object</span>
+<span class="n">EngineClient</span> <span class="n">engineClient</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">EngineClient</span><span class="o">(</span><span 
class="s">"http://localhost:8000";</span><span class="o">);</span>
+
+<span class="c1">// query</span>
+
+<span class="n">JsonObject</span> <span class="n">response</span> <span 
class="o">=</span> <span class="n">engineClient</span><span 
class="o">.</span><span class="na">sendQuery</span><span 
class="o">(</span><span class="n">ImmutableMap</span><span 
class="o">.&lt;</span><span class="n">String</span><span class="o">,</span> 
<span class="n">Object</span><span class="o">&gt;</span><span 
class="n">of</span><span class="o">(</span>
+  <span class="s">"landingPageId"</span><span class="o">,</span> <span 
class="s">"example.com/page9"</span><span class="o">,</span>
+  <span class="s">"referrerId"</span><span class="o">,</span> <span 
class="s">"referrer10.com"</span><span class="o">,</span>
+  <span class="s">"browser"</span><span class="o">,</span> <span 
class="s">"Firefox"</span>
+<span class="o">));</span>
+</pre></td> </tr></tbody></table> </div> </div> </div> <p>The following is 
sample JSON response:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1</pre></td><td class="code"><pre><span 
class="o">{</span><span class="s2">"score"</span>:0.7466666666666667<span 
class="o">}</span>
+</pre></td></tr></tbody></table> </div> <p><em>MyLeadScoring</em> is now 
running.</p><div class="alert-message info"><p>To update the model periodically 
with new data, simply set up a cron job to call <code>pio train</code> and 
<code>pio deploy</code>. The engine will continue to serve prediction results 
during the re-train process. After the training is completed, <code>pio 
deploy</code> will automatically shutdown the existing engine server and bring 
up a new process on the same port.</p></div><div class="alert-message 
info"><p><strong>Note that if you import a <em>large</em> data set</strong> and 
the training seems to be taking forever or getting stuck, it&#39;s likely that 
there is not enough executor memory. It&#39;s recommended to setup a Spark 
standalone cluster, you&#39;ll need to specify more driver and executor memory 
when training with a large data set. Please see <a 
href="/resources/faq/#engine-training">FAQ here</a> for instructions.</p></div> 
<h4 id='<a-href="/template
 s/leadscoring/dase/">next:-dase-components-explained</a>' 
class='header-anchors' ><a href="/templates/leadscoring/dase/">Next: DASE 
Components Explained</a></h4></div></div></div></div><footer><div 
class="container"><div class="seperator"></div><div class="row"><div 
class="col-md-6 col-xs-6 footer-link-column"><div 
class="footer-link-column-row"><h4>Community</h4><ul><li><a 
href="//docs.prediction.io/install/" target="blank">Download</a></li><li><a 
href="//docs.prediction.io/" target="blank">Docs</a></li><li><a 
href="//github.com/apache/incubator-predictionio" 
target="blank">GitHub</a></li><li><a 
href="mailto:user-subscr...@predictionio.incubator.apache.org"; 
target="blank">Subscribe to User Mailing List</a></li><li><a 
href="//stackoverflow.com/questions/tagged/predictionio" 
target="blank">Stackoverflow</a></li></ul></div></div><div class="col-md-6 
col-xs-6 footer-link-column"><div 
class="footer-link-column-row"><h4>Contribute</h4><ul><li><a 
href="//predictionio.incubator.apache.org/
 community/contribute-code/" target="blank">Contribute</a></li><li><a 
href="//github.com/apache/incubator-predictionio" target="blank">Source 
Code</a></li><li><a href="//issues.apache.org/jira/browse/PIO" 
target="blank">Bug Tracker</a></li><li><a 
href="mailto:dev-subscr...@predictionio.incubator.apache.org"; 
target="blank">Subscribe to Development Mailing 
List</a></li></ul></div></div></div></div><div id="footer-bottom"><div 
class="container"><div class="row"><div class="col-md-12"><div 
id="footer-logo-wrapper"><img alt="PredictionIO" 
src="/images/logos/logo-white-d1e9c6e6.png"/></div><div 
id="social-icons-wrapper"><a class="github-button" 
href="https://github.com/apache/incubator-predictionio"; data-style="mega" 
data-count-href="/apache/incubator-predictionio/stargazers" 
data-count-api="/repos/apache/incubator-predictionio#stargazers_count" 
data-count-aria-label="# stargazers on GitHub" aria-label="Star 
apache/incubator-predictionio on GitHub">Star</a> <a class="github-button" 
href="h
 ttps://github.com/apache/incubator-predictionio/fork" 
data-icon="octicon-git-branch" data-style="mega" 
data-count-href="/apache/incubator-predictionio/network" 
data-count-api="/repos/apache/incubator-predictionio#forks_count" 
data-count-aria-label="# forks on GitHub" aria-label="Fork 
apache/incubator-predictionio on GitHub">Fork</a> <script id="github-bjs" 
async="" defer="" src="https://buttons.github.io/buttons.js";></script><a 
href="//www.facebook.com/predictionio" target="blank"><img alt="PredictionIO on 
Twitter" src="/images/icons/twitter-ea9dc152.png"/></a> <a 
href="//twitter.com/predictionio" target="blank"><img alt="PredictionIO on 
Facebook" src="/images/icons/facebook-5c57939c.png"/></a> 
</div></div></div></div></div></footer></div><script>(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
+(w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
+e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
+})(window,document,'script','//s.swiftypecdn.com/install/v1/st.js','_st');
+
+_st('install','HaUfpXXV87xoB_zzCQ45');</script><script 
src="/javascripts/application-280db181.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/0bdbf8fe/templates/leadscoring/quickstart/index.html.gz
----------------------------------------------------------------------
diff --git a/templates/leadscoring/quickstart/index.html.gz 
b/templates/leadscoring/quickstart/index.html.gz
new file mode 100644
index 0000000..7929395
Binary files /dev/null and b/templates/leadscoring/quickstart/index.html.gz 
differ

Reply via email to