Superset gives you direct access to your Swaarm data for custom reporting and visualisation. You can query any dataset using SQL, build charts and graphs from the results, and organise them into custom dashboards.
Go to Reports → Studio in the Swaarm menu - this opens Superset in a new tab.
Querying data in SQL Lab
In Superset, click SQL → SQL Lab in the top navigation
Select a table from the See Table Schema dropdown to explore its structure
Write your query in the editor and click Run
Click CSV to export results
⚠️ Some tables - especially clicks — can contain very large volumes of data. Always use a WHERE clause to filter by date range, offer, or publisher, and add a LIMIT to avoid timeouts. We recommend a maximum of 10,000 rows for click queries.
Available datasets
Table | What it contains |
| User activity data |
| Ad keyword data |
| Advertiser records |
| Bid request data |
| Click redirection logs |
| Full click log |
| Clicks that were discarded |
| Impressions that were discarded |
| Postbacks that have been attributed successfully - the primary source for conversion data |
| Impression log |
| Results from lead forwarding |
| Lead data |
| Offer records |
| Publisher contact information |
| Publisher records |
| User data |
Example queries
Click log for a specific offer and publisher
SELECT * FROM clicks WHERE offer_id = '12345' AND publisher_id = '54321' AND time BETWEEN '2026-01-01 00:00:00' AND '2026-01-02 00:00:00' LIMIT 10000
Conversions per offer for a date range
SELECT offer_offerId , count() AS conversions FROM evaluated_postbacks
WHERE time BETWEEN '2026-01-01 00:00:00' AND '2026-01-31 23:59:59'
AND status_state = 'APPROVED' GROUP BY offer_offerId
ORDER BY conversions DESC LIMIT 100
Clicks per landing page
SELECT offer_lpId, count() AS clicks FROM clicks WHERE offer_id = '12345' AND time BETWEEN '2026-01-01 00:00:00' AND '2026-01-31 23:59:59' GROUP BY offer_lpId ORDER BY clicks DESC
Discarded clicks by reason
SELECT failedRules, count() AS total FROM discarded_clicks WHERE time BETWEEN '2026-01-01 00:00:00' AND '2026-01-31 23:59:59' GROUP BY failedRules ORDER BY total DESC
ℹ️ For ClickHouse SQL syntax and available functions, see the ClickHouse documentation →
Building charts
You can create charts directly from your query results or from any dataset.
Go to Charts → + Chart
Select a dataset and a visualisation type (bar chart, line chart, pie chart, table, etc.)
Configure the dimensions, metrics, and filters
Click Save
Example 1 - Profit per day (line chart)
A simple daily profit trend for the current month.
Dataset: evaluated_postbacks Chart type: Line chart
Setup:
Time Column:
timeTime Grain: Day
Time Range: Month to date
Metrics: Click + Drop columns/metrics here or click → the metric editor opens → select the Custom SQL tab → type
SUM(offer_weGetStd) - SUM(offer_theyGetStd)→ click the pencil icon to rename itProfit→ click SaveFilters:
status_state IN APPROVED
ℹ️ Check here how to add metric with an operation.
The result shows a day-by-day profit curve so you can spot dips or spikes quickly.
Example 2 - Daily performance by offer and publisher
Paid events per day filtered by a specific offer and publisher - useful for monitoring campaign volume month to date.
Dataset: evaluated_postbacks Chart type: Line chart
Setup:
Time Column:
timeTime Grain: Day
Time Range: Last Month
Metrics: Click + Drop columns/metrics here or click → select COUNT(*) to count rows
Filters:
status_state in APPROVEDoffer_offerId = [your offer ID]click_publisher_id = [your publisher ID]*
ℹ️ Check here how to add metric with an operation.
The result shows the number of paid events per day for that offer/publisher combination, with each day of the month along the time axis.
Example 3 - Revenue per offer (bar chart)
Compare total revenue across all offers for the current month.
Dataset: evaluated_postbacks Chart type: Bar chart
Setup:
Time Column:
timeTime Range: Last Month
Metrics: Click + Drop columns/metrics here or click → Simple tab → select
offer_weGetStd→ set aggregation to SUM → rename toRevenue→ click SaveDimensions:
offer_offerIdFilters:
status_state = APPROVEDSort by SUM(weget) descending
ℹ️ Check here how to add metric with an operation.
Example 4 - Conversions by publisher (table)
A ranked table of publishers by conversion count with revenue and costs.
Dataset: evaluated_postbacks Chart type: Table
Setup:
Time Column:
timeTime Range: Last Month
Metrics:
COUNT(*)
offer_weGetStd→ SUMoffer_thyeGetStd→ SUM
Dimensions:
click_publisher_idFilters:
status_state = APPROVEDSort by COUNT(*) descending
ℹ️ Check here how to add metric with an operation.
How to add a metric with an operation
Click + Drop columns/metrics here or click in the Metrics field - the metric editor opens
The editor has three tabs: Saved, Simple, and Custom SQL
For a simple aggregation (e.g. SUM of revenue):
For a custom formula (e.g. profit = revenue minus costs):
Building dashboards
Saved charts can be combined into custom dashboards for a persistent reporting view.
Go to Dashboards → + Dashboard
Enter a name and click Save
Click Edit Dashboard to enter edit mode
Drag and drop saved charts onto the canvas
Resize and arrange as needed
Click Save to publish
Example - Daily Performance Dashboard
A useful starting point for an AM's daily check-in:
Profit per day line chart - SUM(weget) - SUM(theyget) by day, Month to Date
Revenue per day line chart - SUM(weget) by day, Month to Date
Costs per day line chart - SUM(theyget) by day, Month to Date
Publisher conversion table - ranked by conversion count with revenue and costs
Add filters at the dashboard level so you can switch between offers or date ranges without rebuilding each chart individually.

















