Description
Admin / Store Owner
› Create and manage product & banner plans
› Review and approve vendor campaigns
› Suspend or reject campaigns with reason
› Billing top-up, budget control & ledger
› Platform-wide analytics and revenue reports
› Fraud monitoring dashboard and score config
› Geographic & device breakdown reports
› Cron automation with CSV export
› Review and approve vendor campaigns
› Suspend or reject campaigns with reason
› Billing top-up, budget control & ledger
› Platform-wide analytics and revenue reports
› Fraud monitoring dashboard and score config
› Geographic & device breakdown reports
› Cron automation with CSV export
Vendor / Seller
› Choose from Fixed, CPC, CPM, or CPD plans
› Create multi-ad campaigns with objectives
› Set total & daily budgets with auto-renew
› Advanced targeting: country, device, category
› Schedule ads by day of week & hour range
› Run A/B tests with automatic winner selection
› Set per-campaign frequency caps
› View per-campaign stats: CTR, spend, conversions
› Create multi-ad campaigns with objectives
› Set total & daily budgets with auto-renew
› Advanced targeting: country, device, category
› Schedule ads by day of week & hour range
› Run A/B tests with automatic winner selection
› Set per-campaign frequency caps
› View per-campaign stats: CTR, spend, conversions
Storefront Visitor
› Sees only contextually relevant ads
› Targeting matches country, device & OS
› Ads respect category and page context
› Frequency cap prevents ad fatigue
› Schedule ensures ads show at peak hours
› Fraud engine silently blocks bots & scrapers
› A/B engine serves optimal creative variant
› Targeting matches country, device & OS
› Ads respect category and page context
› Frequency cap prevents ad fatigue
› Schedule ensures ads show at peak hours
› Fraud engine silently blocks bots & scrapers
› A/B engine serves optimal creative variant
Admin
Product & Banner Plans
Define every aspect of a placement plan — pricing model, block targets, duration, budget caps, and renewal behavior.
Four Pricing Models
• Fixed — flat fee for a placement period
• CPC — charged per click on the ad
• CPM — charged per 1,000 impressions
• CPD — daily budget-based spending
Plan pricing model is enforced on vendors; they cannot override CPC/CPM bid set by the plan.
• CPC — charged per click on the ad
• CPM — charged per 1,000 impressions
• CPD — daily budget-based spending
Plan pricing model is enforced on vendors; they cannot override CPC/CPM bid set by the plan.
Plan Builder
• Set name, status, pricing model & bid amount
• Assign target layout block(s) for ad display
• Define minimum balance & default daily budget
• Configure preset block ID for product placement
• Separate plans for Product Listings and Banners
• Full multi-language plan name support
• Assign target layout block(s) for ad display
• Define minimum balance & default daily budget
• Configure preset block ID for product placement
• Separate plans for Product Listings and Banners
• Full multi-language plan name support
Renewal Control
• Same Plan — renew on the identical plan
• On Product — redirect vendor to product page for re-selection
• Automatic renewal triggers via cron
• Admin configures global renewal behavior in settings
• On Product — redirect vendor to product page for re-selection
• Automatic renewal triggers via cron
• Admin configures global renewal behavior in settings
Campaign Approval Workflow
Full lifecycle governance: every campaign passes through admin review before it goes live on the storefront.
Status Lifecycle
draft → pending → approved → active
↘ rejected | ↘ suspended
Approved = admin signed off. Active = vendor paid. Vendor with pre-deposited balance skips to active immediately.
↘ rejected | ↘ suspended
Approved = admin signed off. Active = vendor paid. Vendor with pre-deposited balance skips to active immediately.
Admin Actions
• Approve pending campaign (with optional notes)
• Reject with mandatory reason (sent to vendor)
• Suspend active campaign immediately
• Reactivate suspended / rejected campaigns
• Bulk approve, reject, or suspend selected
• Auto-approve trusted vendors (optional)
• Reject with mandatory reason (sent to vendor)
• Suspend active campaign immediately
• Reactivate suspended / rejected campaigns
• Bulk approve, reject, or suspend selected
• Auto-approve trusted vendors (optional)
Notifications
• Vendor notified on approval with notes
• Vendor notified on rejection with reason
• Low-balance alert when campaign drops below threshold
• Configurable % and absolute minimum thresholds
• Payment window: campaign auto-cancels if vendor doesn't pay within N days
• Vendor notified on rejection with reason
• Low-balance alert when campaign drops below threshold
• Configurable % and absolute minimum thresholds
• Payment window: campaign auto-cancels if vendor doesn't pay within N days
Platform Analytics Dashboard
Store-wide advertising intelligence with revenue trends, vendor comparison, and fraud monitoring — all with CSV export.
Revenue Overview
• Total platform revenue from ad spend (date range)
• Daily revenue trend chart (last 30 days)
• Top 10 vendors by advertising spend
• Charge event count per vendor
• Active campaigns count store-wide
• Fraud-blocked impression count
• Daily revenue trend chart (last 30 days)
• Top 10 vendors by advertising spend
• Charge event count per vendor
• Active campaigns count store-wide
• Fraud-blocked impression count
Geographic Breakdown
• Impressions and clicks by country code
• GeoIP-based visitor location detection
• Country used by TargetingEngine in real-time
• Country stored per impression in the log table
• Filterable in the admin analytics report
• GeoIP-based visitor location detection
• Country used by TargetingEngine in real-time
• Country stored per impression in the log table
• Filterable in the admin analytics report
Device & OS Breakdown
• Desktop / mobile / tablet split
• OS breakdown: Windows, iOS, Android, macOS, Linux
• Browser identification per impression
• DeviceDetector class powered by User-Agent parsing
• Used both in targeting rules and analytics reports
• OS breakdown: Windows, iOS, Android, macOS, Linux
• Browser identification per impression
• DeviceDetector class powered by User-Agent parsing
• Used both in targeting rules and analytics reports
Conversion Funnel
• Configurable conversion attribution window (default 30 days)
• Attribution models: last click, first click, linear
• Conversion count per campaign and ad
• Revenue attributed to each ad from linked orders
• Conversion events stored in dedicated log table
• Attribution models: last click, first click, linear
• Conversion count per campaign and ad
• Revenue attributed to each ad from linked orders
• Conversion events stored in dedicated log table
CSV Export
• Export any analytics report as CSV
• Impression log with all metadata fields
• Billing log export for accounting
• Fraud event log export
• Vendor-scoped or platform-wide export
• Impression log with all metadata fields
• Billing log export for accounting
• Fraud event log export
• Vendor-scoped or platform-wide export
Debug Logger
• Enable/disable detailed event logging in settings
• Logs stored in dedicated logger table
• Admin viewer with filter by level and timestamp
• Useful for diagnosing billing, fraud, and targeting issues
• LoggerAddons PSR-style class with severity levels
• Logs stored in dedicated logger table
• Admin viewer with filter by level and timestamp
• Useful for diagnosing billing, fraud, and targeting issues
• LoggerAddons PSR-style class with severity levels
Vendor
Campaign Manager
Vendors create and manage advertising campaigns from a dedicated self-serve panel — with full budget control and real-time stats.
Campaign Creation
• Campaign name, objective (traffic / awareness / conversions / leads)
• Pick pricing model plan (Fixed / CPC / CPM / CPD)
• Set total budget & daily spending cap
• Configure start date, end date, and auto-renew
• Add product ads and/or banner ads within one campaign
• Per-ad creative: headline, description, CTA text, image
• Pick pricing model plan (Fixed / CPC / CPM / CPD)
• Set total budget & daily spending cap
• Configure start date, end date, and auto-renew
• Add product ads and/or banner ads within one campaign
• Per-ad creative: headline, description, CTA text, image
Vendor Analytics
• Per-campaign: impressions, clicks, CTR, conversions, spend
• Executive summary: total views, total spend, active campaigns
• Top performing campaign highlighted
• Fraud-blocked event counter
• Average CTR across all campaigns
• Date-range picker (defaults to current month)
• Executive summary: total views, total spend, active campaigns
• Top performing campaign highlighted
• Fraud-blocked event counter
• Average CTR across all campaigns
• Date-range picker (defaults to current month)
Budget & Billing
• Real-time balance deduction per click or impression
• Daily budget resets at midnight via cron
• Campaign auto-pauses when balance reaches zero
• Campaign resumes automatically when topped up
• Low-balance notifications before budget runs out
• Full billing history accessible to vendor
• Daily budget resets at midnight via cron
• Campaign auto-pauses when balance reaches zero
• Campaign resumes automatically when topped up
• Low-balance notifications before budget runs out
• Full billing history accessible to vendor
Pause & Resume
• Vendor can pause and resume CPC/CPM campaigns anytime
• Fixed plan pause also available with admin setting
• Paused campaigns stop billing and ad delivery immediately
• Remaining budget is preserved on pause
• Resumed campaigns continue from remaining balance
• Fixed plan pause also available with admin setting
• Paused campaigns stop billing and ad delivery immediately
• Remaining budget is preserved on pause
• Resumed campaigns continue from remaining balance
Auto-Activate Products
• Admin option to auto-set product status to Active when placement is paid
• Useful for vendors who upload products and pay before enabling
• Eliminates need for a separate product activation step
• Works for both product listings and banner-linked products
• Useful for vendors who upload products and pay before enabling
• Eliminates need for a separate product activation step
• Works for both product listings and banner-linked products
Purchase Panel
• Vendor panel for purchasing banner placements directly
• Standard CS-Cart checkout flow for ad budget purchases
• Post-pay redirect configurable (to campaign or product)
• Integrated with vendor_debt_payout for balance management
• Checkout hooks ensure proper cart handling
• Standard CS-Cart checkout flow for ad budget purchases
• Post-pay redirect configurable (to campaign or product)
• Integrated with vendor_debt_payout for balance management
• Checkout hooks ensure proper cart handling
Advanced Targeting Engine
10 targeting dimensions — AND logic between types, include & exclude modes
Geographic
country — include or exclude by country code (US, CA, UK…)
GeoDetector resolves visitor IP to ISO code in real time
GeoDetector resolves visitor IP to ISO code in real time
Device & OS
device — desktop, mobile, tablet
os — iOS, Android, Windows, macOS, Linux
DeviceDetector parses User-Agent string
os — iOS, Android, Windows, macOS, Linux
DeviceDetector parses User-Agent string
Category & Audience
category — show only in specific product categories (CSV of IDs)
user_group — 0=guest visitors, 1=registered users
user_group — 0=guest visitors, 1=registered users
Context
language — show on specific storefront languages
dispatch — target specific CS-Cart pages (products.view, categories.view…)
dispatch — target specific CS-Cart pages (products.view, categories.view…)
Time Targeting
hour — range e.g. 9-17 (only show between 9:00 and 17:00)
day_of_week — 1=Mon … 6=Sat, 0=Sun (CSV of days)
day_of_week — 1=Mon … 6=Sat, 0=Sun (CSV of days)
Keyword
keyword — trigger on search terms matching CSV keywords
Great for search-intent targeting on the storefront search page
Great for search-intent targeting on the storefront search page
Evaluation Logic: Rules are grouped by
target_type. Within each type, include rules require a match; exclude rules require no match. All type groups must pass (AND logic). Types with no rules = no restriction on that dimension. A campaign with zero targeting rules is shown to everyone (maximum reach mode).
Click Fraud Detection Engine
0–100 fraud scoring per impression — bots never get billed, suspicious events get flagged
| Fraud Signal | Default Score Weight | Description |
|---|---|---|
| Bot User-Agent | 90 | UA string matches known crawler / scraper / headless browser patterns |
| IP Flood | 30 | Same IP exceeds N clicks within 1 hour (configurable threshold) |
| High CTR Visitor | 40 | Visitor CTR far above average — clicking significantly more than normal |
| Fast Click | 25 | Click interval below minimum threshold (default 2 seconds) |
| Datacenter / Proxy IP | 50 | IP geolocation resolves to known hosting center or anonymizing proxy |
| No Referrer Pattern | 20 | More than 80% of clicks from same visitor have no HTTP Referer header |
≥ 70
Block — not billed
40–69
Flag — billed but marked
< 40
Clean — billed normally
A/B Testing · Frequency Capping · Ad Scheduling
Three tools that work together to maximize ad performance and protect visitor experience.
A/B Test Engine
• Campaign ads split into groups A and B with configurable weights
• Deterministic variant assignment per visitor using CRC32 hash (consistent across sessions)
• Chi-Square statistical test at 95% confidence (χ² > 3.841)
• Minimum 1,000 impressions before declaring a winner
• Auto-apply: winning variant automatically pauses the loser when significance is reached
• Per-ad quality score (0–10) tracked alongside A/B results
• Deterministic variant assignment per visitor using CRC32 hash (consistent across sessions)
• Chi-Square statistical test at 95% confidence (χ² > 3.841)
• Minimum 1,000 impressions before declaring a winner
• Auto-apply: winning variant automatically pauses the loser when significance is reached
• Per-ad quality score (0–10) tracked alongside A/B results
Frequency Capping
• Set max impressions or max clicks per visitor per campaign
• Period options: per hour, per day, per week, or per entire campaign lifetime
• Race-safe atomic upsert counting (INSERT … ON DUPLICATE KEY UPDATE)
• UNIQUE constraint prevents double-counting under concurrent requests
• Exceeding cap silently suppresses ad — visitor never sees over-served creatives
• Period options: per hour, per day, per week, or per entire campaign lifetime
• Race-safe atomic upsert counting (INSERT … ON DUPLICATE KEY UPDATE)
• UNIQUE constraint prevents double-counting under concurrent requests
• Exceeding cap silently suppresses ad — visitor never sees over-served creatives
Ad Scheduling
• Define active windows per day of week + hour range
• Multiple schedule slots supported per campaign
• Timezone configuration per schedule rule
• Ads outside their schedule window are automatically suppressed
• Perfect for peak-hour bidding and off-hours budget conservation
• Multiple schedule slots supported per campaign
• Timezone configuration per schedule rule
• Ads outside their schedule window are automatically suppressed
• Perfect for peak-hour bidding and off-hours budget conservation
Concurrency-Safe Billing Engine
Atomic balance mutations — race conditions impossible, double-spend prevented at database level
Atomic Updates
All balance mutations use a WHERE-guard on the current balance. Two simultaneous requests cannot both subtract from the same balance.
Immutable Billing Log
The billing_log table is append-only. Records are never updated — providing a complete, tamper-evident financial ledger per vendor.
Daily Budget Reset
Cron resets
spent_today at midnight. Campaigns resume if they were paused by daily cap. Last reset date is tracked per campaign. Low Balance Alerts
Dual threshold: configurable percentage (default 10%) and absolute minimum (default $1.00). Both must fail to trigger the alert.
Admin Top-Up
Admins can manually add balance to any vendor's advertising account. Validates vendor existence and plan existence before updating.
Payment Window
Approved campaigns auto-cancel if vendor doesn't pay within N days (default 3). Prevents campaigns from occupying approval queue indefinitely.
Database Schema — 20 Tables
All tables prefixed
ss_pay_per_prod_. Install and uninstall SQL files provided for every table.Architecture
PSR-4 Class Architecture — Namespace
Tygh\SoftSolid\SsPayPerProd15 singleton service classes, all lazy-loaded per request. Each class has a dedicated responsibility.
ABTestEngine
Chi-Square A/B split, variant selection, auto-apply winner
Billing
Atomic balance deduction, billing log, top-up, refund
CampaignManager
Campaign CRUD, approval workflow, budget management, auto-renew
Common
Shared utilities used across all service classes
Configuration
Unified settings accessor for addon configuration
Cron
Budget resets, expired campaign cleanup, renewal triggers
DeviceDetector
User-Agent parsing: device type, OS, browser, bot detection
FraudDetector
0–100 fraud scoring, multi-signal analysis, block/flag actions
FrequencyCapper
Per-visitor impression/click cap enforcement, atomic upsert
GeoDetector
IP → country code resolution for targeting & analytics
LicenseAddons
License key validation and addon ID resolution
LoggerAddons
PSR-style event logger with severity levels, DB-backed
ReportEngine
Vendor summaries, geo/device/hour breakdowns, CSV export
SettingsExtended
Vendor-level and storefront-level settings overrides
TargetingEngine
10-dimension targeting evaluation, AND logic, include/exclude
Compatibility & Technical Specifications
Version
2.0.0
CS-Cart Edition
Multi-Vendor
Addon ID
ss_pay_per_prod
Dependency
vendor_debt_payout
PHP Namespace
Tygh\SoftSolid\SsPayPerProd
Scheme
3.0
DB Tables
20 tables
Developer
SoftSolid
Fixed Pricing
CPC
CPM
CPD
Fraud Detection
A/B Testing
10-Dim Targeting
Frequency Capping
Ad Scheduling
Conversion Tracking
Atomic Billing
15 PHP Classes
GeoIP Detection
CSV Export
Supplement Facts
Amount Per Serving
%Daily Value
| Compatible | Youpitheme | — |
* Daily Value not established.
Features
Compatible
- Unitheme
- Youpitheme
Comptabile versions
- 4.18.x ,
- 4.17.x ,
- 4.16.x
Cs-cart Core
- Multi-vendor
Improvement For
- Admin
- Vendor
Reviews
No reviews found
Please sign in so that we can notify you about a reply