Operator guideENanalyticsoptintableexportdelete

Analytics / Opt-In Clicks / List

Combined analytics surface with summary cards, feature and daily trend blocks, filters, export, bulk delete, and a paginated raw opt-in record table.

Reader view

Clean portal guidance

This page keeps the operator explanation, field and action descriptions, and screenshots visible without exposing repo paths, raw sidecars, or editorial-only implementation details.

Narrative content

Page body

What this surface shows

Analytics / Opt-In Clicks / List is one combined analytics page for opt-in interaction records.

The route shows two layers at once:

  • aggregated analytics at the top
  • raw records in the table below

Use the top section when you need a quick summary of views, clicks, click rate, and the strongest-performing features for the selected date window. Use the table when you need to inspect concrete records by feature, user, IP address, or timestamp.

How to read the page

Top summary cards

The first row shows:

  • Total Views
  • Total Clicks
  • Click Rate
  • Unique Users

These cards are derived in FE from the backend stats response grouped by feature. They are useful for quick monitoring, but they are not a separate immutable reporting endpoint with one precomputed totals row.

Feature Performance

This block ranks features by view volume and shows per-feature:

  • views
  • clicks
  • CTR

Only the top 10 features by views are shown in this block.

Daily Trend

This block shows the last 30 daily buckets returned by backend aggregation, reformatted in FE for compact display.

Raw record table

The table is the row-level inspection surface. It is the place to verify a single record, identify the feature slug, confirm whether the record was only viewed or actually clicked, and export or delete selected rows.

Filters that change the page

The page contains five visible filters:

  • Feature
  • Status
  • User ID
  • Start Date
  • End Date

Important scope difference:

  • Start Date and End Date affect both the top analytics section and the raw table.
  • Feature, Status, and User ID affect the raw table request only.

Actions operators can use

  • Refresh reloads the current table query.
  • Export CSV downloads rows for the current table filter set.
  • Delete removes the selected raw records after confirmation.
  • Reset clears the visible filters and returns the table to its default list state.

Common questions

Why do the top cards stay the same when I change Status or User ID?

Because the stats request only receives startDate and endDate. Those cards do not use the table-only filters.

Why can Unique Users look larger than expected?

Because FE sums unique_users across feature groups. If one user interacted with multiple features, that user can be counted more than once in the top card.

What is the difference between Viewed and Clicked?

Viewed means the record exists with clicked = 0. Clicked means the stored record has clicked = 1.

Is there a row detail page?

Not in the currently verified FE route. The operator surface is the combined page with embedded table and stats.

Known caveats

  • The Feature dropdown counts come from backend aggregation that is narrowed only by date range, not by User ID or Status.
  • The table row selection is purely for bulk deletion on this screen.
  • The admin backend also exposes a create route, but no verified Backoffice create form exists on this module today.

Verification status

  • status: verified_backend
  • last verified: 2026-04-15
  • note: FE route, filters, stats transforms, delete/export actions, and backend route ownership were traced. No nx-workspace dependency was required for the current surface.
Calculation notes

Frontend calculations

calculation

total_views_card

Formula
sum(parseInt(stat.total_views)) across all rows returned by GET /api/admin/optin-clicks/stats
Output
Total Views card
calculation

total_clicks_card

Formula
sum(parseInt(stat.total_clicks)) across all rows returned by GET /api/admin/optin-clicks/stats
Output
Total Clicks card
calculation

click_rate_card

Formula
if total_views_card = 0 then 0 else ((total_clicks_card / total_views_card) * 100).toFixed(2)
Output
Click Rate card
calculation

unique_users_card

Formula
sum(parseInt(stat.unique_users)) across all rows returned by GET /api/admin/optin-clicks/stats
Output
Unique Users card
Caveats
This is a frontend sum of per-feature unique-user counts and can overcount users who appear in multiple features.
calculation

feature_performance_top_10

Formula
sort processed stats by views descending and keep the first 10 rows
Output
Feature Performance block
calculation

daily_trend_display

Formula
reverse backend dailyTrend rows and format each backend date to local month/day text
Output
Daily Trend block
Grid columns

Columns

field

ID

Primary row identifier for the stored opt-in record.

Visual Type
grid-column
field

Feature

Feature slug recorded for the view or click.

Visual Type
chip
field

URL

Stored destination or request URL for the record.

Visual Type
truncated-text
field

User ID

Linked user identifier when the interaction is associated with a known user.

Visual Type
grid-column
field

Status

Distinguishes between view-only rows and rows marked as clicked.

Visual Type
badge
field

IP Address

Recorded requester IP address when available.

Visual Type
grid-column
field

Created At

Record creation timestamp after FE date-time formatting.

Visual Type
datetime
Filter dictionary

Filters

field

Feature

Limits the raw table to one feature slug.

Type
select
Affects
table_rows
Caveats
The dropdown counts are sourced from backend aggregation narrowed only by date range.
field

Status

Limits the raw table to view-only rows or click rows.

Type
select
Affects
table_rows
field

User ID

Limits the raw table to one user identifier.

Type
text
Affects
table_rows
field

Start Date

Lower date bound shared by the raw table and the analytics blocks.

Type
date
Affects
table_rows, stats_cards, feature_performance, daily_trend
field

End Date

Upper date bound shared by the raw table and the analytics blocks.

Type
date
Affects
table_rows, stats_cards, feature_performance, daily_trend
Metric dictionary

Metrics

metric

Total Views

Total number of stored view-or-click records included in the current stats response.

Aliases
optin total views, total opt-in views
Filter Dependencies
start_date, end_date
Frontend Transforms
summed in FE from per-feature backend stats rows
Verification Status
verified_backend
Last Verified At
2026-04-15
metric

Total Clicks

Total number of records marked as clicked in the current stats response.

Aliases
optin total clicks, total opt-in clicks
Filter Dependencies
start_date, end_date
Frontend Transforms
summed in FE from per-feature backend stats rows
Verification Status
verified_backend
Last Verified At
2026-04-15
metric

Click Rate

Ratio of clicks to total records in the selected stats window.

Aliases
optin ctr, optin click rate
Filter Dependencies
start_date, end_date
Frontend Transforms
calculated in FE from total clicks and total views
Verification Status
verified_backend
Last Verified At
2026-04-15
metric

Unique Users

Summed per-feature unique-user count shown in the top card.

Aliases
optin unique users, users who saw optin
Filter Dependencies
start_date, end_date
Frontend Transforms
summed in FE from per-feature backend stats rows
Caveats
Can overcount users who interacted with more than one feature.
Verification Status
verified_backend
Last Verified At
2026-04-15
Operational notes

Notes

item

The current Backoffice page is one combined route with embedded stats and raw records.

item

Stats and feature-count aggregation are backend-owned in gs-admin-backend.

item

Public/user-side record creation is traced to gs-casino-backend.

item

No nx-workspace dependency was required for the current operator surface.

Related references

Related pages

pageAnalytics / Opt-In Clicks

Operator documentation for the low-frequency Opt-In Clicks analytics page, including embedded summary cards, trend blocks, filters, export, and delete actions.

pageDashboard / KPI Reports

Sortable KPI table for games or providers, used to compare betting and GGR-style metrics by entity rather than by time bucket.

pageDashboard / Player Statistics

Top-player table for winners, losers, and depositors, with rank, player identity, level, and amount shown in a compact comparison view.

pagePlayers / Banking

Banking tab inside the player workspace with transaction filters, a paginated banking grid, analytics cards, CSV export, and automatic-withdrawal availability.

pageReporting / Affiliate Events Report

Audit log of the events and saved amounts the platform sent to the affiliate system, with per-currency successful totals and a CSV export.

pageReporting / Player KPI Report

Bulk player-level KPI export: one row per player with deposit, gameplay, bonus, and activity metrics for a chosen period, filterable and exportable to CSV.