Documentation ComusThumbz
Connexion Admin

Content Analytics

Overview

The Content Analytics Dashboard is a comprehensive analytics interface for tracking impressions, clicks, and click-through rates (CTR) across all content types in ComusThumbz. It provides detailed performance metrics for videos, galleries, models, and cam performers, along with tag and category analytics. The dashboard uses AJAX-powered real-time data loading with customizable time period filters.

Location: Navigate to this page via Admin Panel → Reports → Content Analytics or access directly via ct/admin/contentanalytics.php

[Screenshot: content-analytics-main-interface]


Getting to This Page

Navigate to Admin Panel → ReportsClick Content Analytics link

  1. Alternatively, access directly via ct/admin/contentanalytics.php

 

Note:
This page displays performance analytics for all content types including impressions, clicks, and CTR. Use it to identify top and low performing content to optimize your site's engagement.

 


System Requirements

 

Configuration Required:
This page requires proper impression and click tracking to be configured. Content must be tracked via the tblContentImpressions and tblClickTracking tables.

 

PHP Requirements

Requirement Minimum Recommended Notes
PHP Version 8.0 8.2+ Uses modern PHP syntax
memorylimit 128M 256M For complex SQL queries with UNION operations
maxexecutiontime 60 120 Tag/category queries can be resource-intensive

Required PHP Extensions

Extension Required Purpose
mysqli Yes Database connectivity
session Yes CSRF protection, authentication
json Yes AJAX response handling

Required PHP Functions

Function Required For Notes
mysqliprepare() SQL queries Prepared statements
mysqlistmtbindparam() Query parameters Core
mysqlistmtexecute() Query execution Core
bin2hex() CSRF token generation Security
randombytes() CSRF token generation Security

Folder Permissions

Folder Permission Purpose
ct/admin/ 755 (read) Page access

Network Requirements

Endpoint Protocol Purpose
Font Awesome CDN HTTPS Icons

Features & UI Elements

Page Header

[Screenshot: content-analytics-header]

Element Description
Title "Content Analytics Dashboard" with chart icon
Breadcrumb Dashboard → Content Analytics
Subtitle "Track impressions, clicks, and CTR across all content types"
Time Filter Period selector buttons (7D, 30D, 90D, 1Y)

Time Period Filter

[Screenshot: content-analytics-time-filter]

Period Days Description
7D 7 Last 7 days
30D 30 Last 30 days (default)
90D 90 Last 90 days
1Y 365 Last year

Navigation Buttons

[Screenshot: content-analytics-navigation]

Button Action
Statistics Navigate to statistics.php
Reports Navigate to reports.php
Content Analytics Current page (highlighted)
Refresh Reload all data

Overview Statistics Section

[Screenshot: content-analytics-overview-stats]

Displays aggregate statistics for each content type:

Metric Description
Impressions Total times content was displayed
Clicks Total click-throughs on content
Avg CTR Average click-through rate percentage

Content types shown:

  • Videos
  • Galleries
  • Models
  • Cam Performers

Content Type Tabs

[Screenshot: content-analytics-tabs]

Tab Icon Description
Videos fa-video Video content analytics
Galleries fa-images Gallery/TGP analytics
Models fa-user Model profile analytics
Cam Performers fa-broadcast-tower Cam performer analytics
Tags fa-tags Tag performance analytics
Categories fa-folder Category performance analytics

Top Performers Section

[Screenshot: content-analytics-top-performers]

Displays top 10 content items sorted by CTR (high CTR with minimum impressions):

Column Description
Content ID Unique identifier
Title Content title/name
Impressions Total impressions
Clicks Total clicks
CTR Click-through rate with color badge
Avg Position Average position in listings

CTR Badge Colors:

  • Green (ctr-high): CTR >= 5%
  • Yellow (ctr-medium): CTR 2-5%
  • Red (ctr-low): CTR < 2%

Low Performers Section

[Screenshot: content-analytics-low-performers]

Displays bottom 10 content items that need attention (low CTR with high impressions):

Same columns as Top Performers table.

 

Warning:
Low performing content has high visibility but low engagement. Consider updating thumbnails, titles, or removing underperforming content.

 

Tags Analytics Section

[Screenshot: content-analytics-tags]

Displays when "Tags" tab is selected:

Column Description
Tag Tag name
Content Count Number of content items with this tag
Total Impressions Combined impressions
Unique Views Unique session views
Total Clicks Combined clicks
CTR Click-through rate
Content Types Which content types use this tag
Actions Details button for drill-down
Tip: Click on "Details" to see all content items with a specific tag and their individual performance metrics.

Categories Analytics Section

[Screenshot: content-analytics-categories]

Displays when "Categories" tab is selected:

Same columns as Tags Analytics with category-specific data.

Page Performance Section

[Screenshot: content-analytics-page-stats]

Shows impressions by page source:

Column Description
Page Page name/URL where impressions occurred
Total Impressions Impressions from this page
Unique Sessions Unique visitor sessions
Unique Content Number of different content items shown

Individual Content Lookup

[Screenshot: content-analytics-content-lookup]

Element Description
Search Input Enter content ID (videoid, galleryid, modelid, performerid)
Search Button Execute lookup
Results Shows impressions, clicks, CTR, avg position, and date range

Tag/Category Details Modal

[Screenshot: content-analytics-modal]

A drill-down modal that appears when clicking "Details" on tags or categories:

Modal Header:

  • Title showing tag/category name
  • Close button

 

Summary Statistics:

  • Total Content count
  • Total Impressions
  • Total Clicks
  • Average CTR
  • Content Types breakdown

 

Content List Table:

Column Description
Type Content type badge (video, gallery, model, camperformer)
Title Content title
Content ID Unique identifier
Impressions Total impressions
Unique Views Unique session views
Clicks Total clicks
CTR Click-through rate
Avg Position Average listing position


Pagination: 100 items per page with Previous/Next navigation


Data Sources & SQL Queries

Overview Statistics Query

Aggregates by content type:

  • Total impressions from tblContentImpressions
  • Total clicks from tblClickTracking
  • Average CTR calculated

 

Top/Low Performers Query

Joins impressions with clicks, groups by contentid, orders by CTR.

Tag Statistics Query

Complex UNION query that:

  1. Parses comma-separated tags from tblVideos.tags
  2. Parses comma-separated keywords from tblTgp.keywords
  3. Parses comma-separated tags from tblModels.tags
  4. Parses comma-separated tags from tblCamsPerformers.tags

 

Uses SUBSTRINGINDEX for tag parsing with up to 10 tags per content item.

 

Note:
Tag parsing is resource-intensive. The query uses a numbers table technique (1-10) to split comma-separated values in MySQL.

 

Category Statistics Query

UNION query combining:

  1. Video categories from tblVideoCategories junction table
  2. Gallery categories from tblGalleryCategories junction table
  3. Gallery categories from tblTgp.category direct field

 


Step-by-Step Usage

Viewing Overall Performance

  1. Navigate to Admin Panel → Content Analytics
  2. Select time period (7D, 30D, 90D, 1Y)
  3. View Overview Statistics cards for each content type
  4. Note which content types have highest/lowest CTR

Finding Top Performing Content

  1. Select desired content type tab (Videos, Galleries, Models, Cam Performers)
  2. View "Top Performing Content" section
  3. Content is sorted by CTR (highest first)
  4. Green badges indicate excellent performance (>5% CTR)

Identifying Underperforming Content

  1. Select content type tab
  2. Scroll to "Low Performing Content" section
  3. These items have high impressions but low clicks
  4. Consider updating thumbnails, titles, or descriptions

Analyzing Tag Performance

  1. Click "Tags" tab
  2. View tag performance table with pagination
  3. Click "Details" on any tag to see drill-down
  4. Modal shows all content with that tag

Looking Up Specific Content

Scroll to "Individual Content Lookup" section

  1. Enter the content ID (e.g., videoid = 12345)
  2. Click "Search"
  3. View performance metrics for that specific item

AJAX Actions

The dashboard uses POST requests with CSRF protection:

Action Parameters Description
getoverview days Get overview statistics by content type
gettopperformers contenttype, days, limit Top performing content
getlowperformers contenttype, days, limit Low performing content
getpagestats days Performance by page
getcontentperformance contenttype, contentid, days Individual content lookup
gettrends days Historical trends (not displayed in UI)
gettagstats days, limit, offset Tag performance with pagination
getcategorystats days, limit, offset Category performance with pagination
gettagdetails tagname, days, limit, offset Detailed tag drill-down
getcategorydetails categoryname, days, limit, offset Detailed category drill-down

Troubleshooting

Common Errors

 

Error:
"Invalid CSRF token"


Cause: Session expired or token mismatch
Solution:

  1. Refresh the page to get new CSRF token
  2. Clear browser cookies if issue persists
  3. Check session configuration

 

 

Error:
"No data available for this period"


Cause: No impression/click data in selected time range
Solution:

  1. Verify tblContentImpressions has data
  2. Check tblClickTracking for click records
  3. Ensure impression tracking is implemented on frontend

 

 

Error:
"Database error preparing tag stats"


Cause: Complex tag query failed
Solution:

  1. Check MySQL error logs
  2. Verify tags columns exist in content tables
  3. Ensure UTF-8 collation is consistent

 

 

Warning:
Slow loading times


Cause: Large datasets with complex UNION queries
Solution:

  1. Add indexes on contenttype, contentid, createdat columns
  2. Reduce time period to smaller range
  3. Consider running tag/category queries during off-peak hours

 

Debug Mode

Add console debugging by checking browser developer tools:

// AJAX responses are logged to console
console.log('[Analytics] Result:', result);
console.log('[TopPerformers] Raw response:', responseText);

Performance Considerations

 

Tip:
For optimal performance:
  1. Add indexes on tblContentImpressions (contenttype, contentid, createdat)
  2. Add indexes on tblClickTracking (contenttype, contentid, createdat)
  3. Consider partitioning tables by date for large datasets
  4. Run OPTIMIZE TABLE periodically on analytics tables

 

-- Impressions table indexes
ALTER TABLE tblContentImpressions
ADD INDEX idxanalyticsquery (contenttype, contentid, createdat),
ADD INDEX idxsessiontime (sessionid, createdat);

-- Click tracking indexes
ALTER TABLE tblClickTracking
ADD INDEX idxanalyticsquery (contenttype, contentid, createdat);

 


Translatable Strings

The following strings should be added to backendtranslations.md:

contentanalyticstitle = "Content Analytics Dashboard"
contentanalyticsbreadcrumb = "Content Analytics"
contentanalyticssubtitle = "Track impressions, clicks, and CTR across all content types"
contentanalyticsoverview = "Overview Statistics"
contentanalyticsvideos = "Videos"
contentanalyticsgalleries = "Galleries"
contentanalyticsmodels = "Models"
contentanalyticscamperformers = "Cam Performers"
contentanalyticstags = "Tags"
contentanalyticscategories = "Categories"
contentanalyticsimpressions = "Impressions"
contentanalyticsclicks = "Clicks"
contentanalyticsavgctr = "Avg CTR"
contentanalyticstopperformers = "Top Performing Content (by CTR)"
contentanalyticslowperformers = "Low Performing Content (Needs Attention)"
contentanalyticstagperformance = "Tag Performance"
contentanalyticscategoryperformance = "Category Performance"
contentanalyticspageperformance = "Performance by Page"
contentanalyticscontentlookup = "Individual Content Lookup"
contentanalyticscontentidplaceholder = "Enter content ID (e.g., videoid, galleryid, modelid, performerid)"
contentanalyticssearch = "Search"
contentanalyticscontentid = "Content ID"
contentanalyticstitlecol = "Title"
contentanalyticsctr = "CTR"
contentanalyticsavgposition = "Avg Position"
contentanalyticscontentcount = "Content Count"
contentanalyticstotalimpressions = "Total Impressions"
contentanalyticsuniqueviews = "Unique Views"
contentanalyticstotalclicks = "Total Clicks"
contentanalyticscontenttypes = "Content Types"
contentanalyticsactions = "Actions"
contentanalyticsdetails = "Details"
contentanalyticspage = "Page"
contentanalyticsuniquesessions = "Unique Sessions"
contentanalyticsuniquecontent = "Unique Content"
contentanalyticsnodata = "No data available"
contentanalyticsloading = "Loading..."
contentanalyticserror = "Error loading data"
contentanalyticsperiod = "Period"
contentanalytics7d = "7D"
contentanalytics30d = "30D"
contentanalytics90d = "90D"
contentanalytics1y = "1Y"
contentanalyticsrefresh = "Refresh"
contentanalyticsstatistics = "Statistics"
contentanalyticsreports = "Reports"
contentanalyticsmodaltitle = "Analytics Details"
contentanalyticstotalcontent = "Total Content"
contentanalyticspiecesofcontent = "Pieces of Content"
contentanalyticsviews = "Views"
contentanalyticsclickthroughs = "Click-throughs"
contentanalyticsclickthroughrate = "Click-Through Rate"
contentanalyticsallcontentwithtag = "All Content with this Tag/Category"
contentanalyticsshowing = "Showing"
contentanalyticsprevious = "Previous"
contentanalyticsnext = "Next"

Version History

Version Date Changes
1.0 2024-10 Initial release with basic CTR analytics
1.1 2024-11 Added tag and category analytics with drill-down modals
1.2 2024-12 Added pagination for tags/categories, improved UNION queries