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
1
Sign in

Click Connect Azure and sign in with your Microsoft work account. Keren Analytics uses your existing permissions — no admin setup needed.

2
Select your resource

If you have multiple App Insights resources, pick the one you want to analyze. If you only have one, it's selected automatically.

3
See your dashboard

That's it. Your Marketing and Technical dashboards are generated from your existing telemetry in under 2 minutes.

No access yet? Ask your Azure admin to grant you Reader on the subscription and Log Analytics Reader on the workspace. These are read-only roles — Keren Analytics never writes to your Azure tenant.

Your First Dashboard

Once connected, your dashboard has three tabs:

MarketingVisitors, sessions, top pages, geo distribution, traffic sources, campaigns, user flow, conversion funnel, peak hours
TechnicalResponse times, error rates, slow endpoints, frontend performance, session timelines
ReadinessTelemetry coverage score (0-100), what's missing, how to fix it with AI-ready prompts

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

MetricWhat it measuresSource
Unique VisitorsDistinct users in the perioduser_AuthenticatedId or user_Id
SessionsDistinct browsing sessionssession_Id
Page ViewsTotal page loadspageViews table
Pages / SessionAverage engagement depthComputed 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

ChartWhat it showsHow to use it
Traffic TrendVisitors + page views over timeSpot growth patterns, weekend dips, launch impact
Geo MapVisitor locations on a world mapIdentify your strongest markets. Toggle Map/Chart view
Conversion FunnelDrop-off from homepage to signupFind where you lose users in the conversion path
Traffic SourcesDirect, Organic, Referral, Social, EmailUnderstand how users find you
User FlowMulti-step Sankey showing navigation pathsSee the actual paths users take. Toggle Flow/Table view
Peak HoursDay-of-week × hour heatmapKnow when to post, send emails, or avoid deploys
Content PerformanceWhich pages drive conversionsPrioritize content investment
CampaignsUTM breakdown with conversion ratesMeasure marketing ROI by campaign

Technical Metrics

The Technical tab helps dev teams monitor application health without writing KQL queries.

KPIs

MetricWhat it measuresHealthy range
Avg ResponseMean server response time< 300ms
P95 Response95th percentile response time< 1000ms
Error Rate% of requests returning 5xx< 3% green < 5% yellow
Frontend AvgMean 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.

SignalPointsPriorityWhat it unlocks
Page Views20requiredTop pages, traffic trends, navigation flow
Backend Requests15requiredResponse times, error rates, slow endpoints
Session Tracking15requiredSessions count, pages per session, user flow
User Identity15recommendedAccurate unique visitors (instead of anonymous IDs)
Device & Browser10recommendedBrowser, OS, device breakdown charts
Geo Location10optionalWorld map, country distribution
Frontend Perf15optionalBrowser timing breakdown, page load analysis
Don't know where to start? Go to the Readiness tab. For each missing signal, click the prompt card to get a copy-paste prompt for your AI coding assistant (Cursor, Copilot, ChatGPT). It will generate the exact code you need for your stack.

Improve Your Telemetry

Keren Analytics detects what's missing and generates implementation prompts tailored to your detected tech stack. Here's the process:

1
Check your Readiness Score

Open the Readiness tab. You'll see your score, which signals are active (green) and which are missing (gray).

2
Open a prompt card

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).

3
Copy it into your AI assistant

Click Copy prompt and paste it into Cursor, GitHub Copilot Chat, or ChatGPT. The AI will generate the implementation code for your specific stack.

4
Deploy and re-check

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 signalTypical fixImpact
Page ViewsAdd the Application Insights JavaScript SDKUnlocks top pages, traffic trends, geo map, user flow
User IdentitySet user_AuthenticatedId after loginAccurate unique visitors instead of anonymous IDs
Browser TimingsEnable enableAutoRouteTracking in JS SDKFrontend performance breakdown + page load metrics
Geo LocationEnsure 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
ParameterPurposeExamples
utm_sourceWhere the traffic comes fromgoogle, linkedin, newsletter
utm_mediumMarketing channelcpc, social, email, referral
utm_campaignSpecific campaign namespring_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
Tip: Use a UTM builder tool (like Google's Campaign URL Builder) to generate consistent UTM links for your team.

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

1
Add the parameter to your URLs

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_v2
2
Keren Analytics detects the parameter

The ab_test parameter appears in the URL Parameters panel with variant frequency. Click it to see top values and filter by variant.

3
Filter and compare

Use the Filter button on each variant value to see all dashboard metrics filtered to that variant. Compare by switching between filters.

Coming soon: A dedicated A/B test comparison panel with side-by-side variant metrics (visitors, conversions, bounce rate) and automatic winner detection is on the roadmap.

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:

ParameterUse caseExample
refInternal link tracking?ref=homepage_banner
promoPromo code tracking?promo=SPRING20
ab_testA/B test variants?ab_test=new_pricing
partnerPartner 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

GET /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: [...] }
GET /preview/dashboard?range=7d

Same as above but with sample data. No authentication needed. Useful for testing integrations.

Prompts & Recommendations

GET /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..."
    }
  ]
}
GET /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

Does Keren Analytics store my data?

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.

Can Keren Analytics see my users' personal data?

No. All queries return aggregated counts — never individual user records. PII is never extracted or stored.

What permissions does Keren Analytics need?

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.

Is the connection secure?

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

My dashboard shows "No data available"

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.

"Authorization failed" error

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.

My App Insights resource doesn't appear

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).

Session expired / "Sign in again"

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.

Some charts are missing (Geo, Browser Timings...)

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.