Keren Analytics Documentation
Get actionable insights from your application's existing telemetry. No new SDK to deploy, no data duplication, dashboard ready in 2 minutes.
Connect Your Application
Keren Analytics works with your existing Azure Application Insights telemetry. There's nothing to install in your app to get started.
What you need
- An Azure account with at least one Application Insights resource
- The App Insights resource must be workspace-based (not classic)
- Reader access on the subscription + Log Analytics Reader on the workspace
Click Connect Azure and sign in with your Microsoft work account. Keren Analytics uses your existing permissions — no admin setup needed.
If you have multiple App Insights resources, pick the one you want to analyze. If you only have one, it's selected automatically.
That's it. Your Marketing and Technical dashboards are generated from your existing telemetry in under 2 minutes.
Your First Dashboard
Once connected, your dashboard has three tabs:
The dashboard auto-refreshes when you change the time range (Today, 7 days, 30 days). All data comes directly from your Azure Log Analytics workspace — nothing is stored on our side.
Marketing Metrics
The Marketing tab gives you a Google Analytics-like view of your application's traffic. Here's what each metric means and where the data comes from.
KPIs
| Metric | What it measures | Source |
|---|---|---|
| Unique Visitors | Distinct users in the period | user_AuthenticatedId or user_Id |
| Sessions | Distinct browsing sessions | session_Id |
| Page Views | Total page loads | pageViews table |
| Pages / Session | Average engagement depth | Computed from above |
Each KPI card shows a sparkline (mini trend chart) and an anomaly badge if the latest value is significantly different from the average. Green = good change, red = concerning change.
Visualizations
| Chart | What it shows | How to use it |
|---|---|---|
| Traffic Trend | Visitors + page views over time | Spot growth patterns, weekend dips, launch impact |
| Geo Map | Visitor locations on a world map | Identify your strongest markets. Toggle Map/Chart view |
| Conversion Funnel | Drop-off from homepage to signup | Find where you lose users in the conversion path |
| Traffic Sources | Direct, Organic, Referral, Social, Email | Understand how users find you |
| User Flow | Multi-step Sankey showing navigation paths | See the actual paths users take. Toggle Flow/Table view |
| Peak Hours | Day-of-week × hour heatmap | Know when to post, send emails, or avoid deploys |
| Content Performance | Which pages drive conversions | Prioritize content investment |
| Campaigns | UTM breakdown with conversion rates | Measure marketing ROI by campaign |
Technical Metrics
The Technical tab helps dev teams monitor application health without writing KQL queries.
KPIs
| Metric | What it measures | Healthy range |
|---|---|---|
| Avg Response | Mean server response time | < 300ms |
| P95 Response | 95th percentile response time | < 1000ms |
| Error Rate | % of requests returning 5xx | < 3% green < 5% yellow |
| Frontend Avg | Mean browser page load time | < 500ms |
Session Timelines
See exactly what a user experienced — page by page, click by click, including errors. No screen recording needed. Keren Analytics reconstructs the journey from your telemetry events.
Each timeline shows: pages visited with time on page, clicks, conversions, errors, and exit points. Useful for debugging user-reported issues or understanding conversion paths.
Readiness Score
Your Readiness Score (0-100) measures how complete your telemetry coverage is. A higher score means more insights available in your dashboards.
| Signal | Points | Priority | What it unlocks |
|---|---|---|---|
| Page Views | 20 | required | Top pages, traffic trends, navigation flow |
| Backend Requests | 15 | required | Response times, error rates, slow endpoints |
| Session Tracking | 15 | required | Sessions count, pages per session, user flow |
| User Identity | 15 | recommended | Accurate unique visitors (instead of anonymous IDs) |
| Device & Browser | 10 | recommended | Browser, OS, device breakdown charts |
| Geo Location | 10 | optional | World map, country distribution |
| Frontend Perf | 15 | optional | Browser timing breakdown, page load analysis |
Improve Your Telemetry
Keren Analytics detects what's missing and generates implementation prompts tailored to your detected tech stack. Here's the process:
Open the Readiness tab. You'll see your score, which signals are active (green) and which are missing (gray).
Under Improve Your Score, click on any missing signal. You'll see a ready-to-use prompt that includes your app's context (resource name, detected framework).
Click Copy prompt and paste it into Cursor, GitHub Copilot Chat, or ChatGPT. The AI will generate the implementation code for your specific stack.
Deploy the changes. Within 24 hours, your new signals will appear and your Readiness Score will increase. The dashboard automatically shows more data as signals become available.
Common improvements
| Missing signal | Typical fix | Impact |
|---|---|---|
| Page Views | Add the Application Insights JavaScript SDK | Unlocks top pages, traffic trends, geo map, user flow |
| User Identity | Set user_AuthenticatedId after login | Accurate unique visitors instead of anonymous IDs |
| Browser Timings | Enable enableAutoRouteTracking in JS SDK | Frontend performance breakdown + page load metrics |
| Geo Location | Ensure client IPs are forwarded (proxy config) | Interactive world map with visitor distribution |
Track Campaigns (UTM Parameters)
Keren Analytics automatically detects UTM parameters in your URLs. No setup needed — just add standard UTM parameters to your marketing links and the dashboard picks them up.
How to add UTM parameters
Append these query parameters to any link pointing to your application:
https://yourapp.com/pricing?utm_source=google&utm_medium=cpc&utm_campaign=spring_launch| Parameter | Purpose | Examples |
|---|---|---|
utm_source | Where the traffic comes from | google, linkedin, newsletter |
utm_medium | Marketing channel | cpc, social, email, referral |
utm_campaign | Specific campaign name | spring_launch, black_friday |
What you get
- A campaign breakdown table showing visitors, sessions, and conversion rate per source/medium/campaign
- Conversion rates are color-coded: green (>8%), default (4-8%), red (<4%)
- Click any campaign row to filter the entire dashboard by that campaign
Set Up A/B Tests
Keren Analytics can detect A/B test variants from URL parameters. Add a parameter like ab_test to your experiment URLs and the URL Parameters panel will track variant distribution.
How it works today
When a user enters your experiment, append the variant name:
// Control group
https://yourapp.com/pricing?ab_test=control
// Variant
https://yourapp.com/pricing?ab_test=new_pricing_v2The ab_test parameter appears in the URL Parameters panel with variant frequency. Click it to see top values and filter by variant.
Use the Filter button on each variant value to see all dashboard metrics filtered to that variant. Compare by switching between filters.
Track Conversions
Conversions are detected from navigation paths. Pages like /signup, /checkout, and /signup/confirm are recognized as funnel pages.
For better conversion tracking, ensure your application's conversion pages have distinct URL paths. The Conversion Funnel visualizes the drop-off at each step of your funnel (e.g., Homepage → Pricing → Signup).
Custom conversion events
For more granular tracking (button clicks, form submissions), add custom events using the Application Insights SDK:
// Track a conversion event
appInsights.trackEvent({
name: "SignupCompleted",
properties: { plan: "enterprise", source: "pricing_page" }
});These custom events will appear in your telemetry and contribute to richer analytics.
Custom URL Parameters
Beyond UTM parameters, Keren Analytics auto-detects any query parameter in your URLs. Common use cases:
| Parameter | Use case | Example |
|---|---|---|
ref | Internal link tracking | ?ref=homepage_banner |
promo | Promo code tracking | ?promo=SPRING20 |
ab_test | A/B test variants | ?ab_test=new_pricing |
partner | Partner attribution | ?partner=acme_corp |
Detected parameters appear as interactive chips in the Parameters view. Click any chip to see its top values, and use the Pin button to keep it permanently visible on your dashboard.
Click Filter on any value to filter the entire dashboard by that parameter — for example, see all metrics for visitors who came with promo=SPRING20.
API Reference
Access your analytics data programmatically. All endpoints return JSON and require authentication via session cookie (set by the login flow).
Use the API to build custom integrations: Slack bots, weekly reports, CI/CD quality gates, or embedded dashboards in your internal tools.
Dashboard Data
/dashboard/overview?range=7d
Returns the complete dashboard data: KPIs, all charts, readiness score, campaigns, user flow, and more.
range
today, 7d (default), 30d
// Example: fetch dashboard data
const response = await fetch('/dashboard/overview?range=7d', {
credentials: 'same-origin'
});
const data = await response.json();
console.log(data.dashboard.kpis);
// { uniqueVisitors: 1523, sessions: 1844, avgResponseTimeMs: 248, ... }
console.log(data.readinessScore);
// { score: 85, grade: "B", breakdown: [...] }/preview/dashboard?range=7d
Same as above but with sample data. No authentication needed. Useful for testing integrations.
Prompts & Recommendations
/prompts
Returns AI-ready prompts for each missing telemetry signal. Use this to build custom notification flows (e.g., "send a Slack message when a signal is missing").
// Response
{
"prompts": [
{
"signal": "pageViews",
"label": "Page View Tracking",
"detectedStack": "React (SPA)",
"prompt": "I need to add page view tracking to my React app..."
}
]
}/recommendations
Returns improvement recommendations with the readiness score.
Integrate in Your Tools
Use the API to embed Keren Analytics data in your existing workflows:
Slack weekly digest
// Fetch KPIs and post to Slack
const data = await fetch('/dashboard/overview?range=7d').then(r => r.json());
const { uniqueVisitors, sessions, errorRate } = data.dashboard.kpis;
await fetch(SLACK_WEBHOOK_URL, {
method: 'POST',
body: JSON.stringify({
text: `Weekly report: ${uniqueVisitors} visitors, ${sessions} sessions, ${(errorRate*100).toFixed(1)}% errors`
})
});CI/CD quality gate
// Check error rate before deploying
const data = await fetch('/dashboard/overview?range=today').then(r => r.json());
if (data.dashboard.kpis.errorRate > 0.05) {
console.error('Error rate too high, aborting deploy');
process.exit(1);
}Notion / Confluence embed
Use the /preview/dashboard endpoint (no auth required) to build simple embed widgets that display current metrics.
Security & Privacy
No. Keren Analytics only stores metadata (which resource you selected, your mapping configuration). All analytics data stays in your Azure Log Analytics workspace. We query it in real-time and cache aggregated results for 5-15 minutes.
No. All queries return aggregated counts — never individual user records. PII is never extracted or stored.
Read-only access: Reader on the subscription (to find resources) and Log Analytics Reader on the workspace (to run queries). Keren Analytics cannot write, modify, or delete anything in your Azure tenant.
Yes. Authentication uses OAuth 2.0 with PKCE via Microsoft Entra ID. Tokens are stored in encrypted server-side sessions and auto-refreshed. All communication uses HTTPS.
Troubleshooting
This means your App Insights resource has no telemetry in the selected time range. Try selecting "Last 30 days" for a wider window. If still empty, your application may not be sending telemetry — check the Readiness tab for guidance.
You don't have the required Azure roles. Ask your admin to grant you Reader on the subscription and Log Analytics Reader on the workspace.
Keren Analytics requires workspace-based App Insights resources. Classic (non-workspace) resources are not supported. You can migrate in the Azure Portal (App Insights → Properties → Migrate to Workspace-based).
Azure tokens expire after ~1 hour. Keren Analytics auto-refreshes them, but if refresh fails, you'll be asked to sign in again. This is normal.
These charts only appear when the relevant telemetry exists. Check your Readiness Score — missing signals explain why certain charts are hidden. The dashboard always shows everything available and guides you to fill the gaps.