Professional

Ads & Affiliate Revenue Platform

· Pricesearcher

Conceptual campaign dashboard with paired cost and revenue bars and reporting panels.

Problem

Pricesearcher bought traffic through Google, Bing and Facebook advertising and earned revenue through affiliate and traffic partners. Comparing advertising costs with that income required joining records from separate systems with different identifiers, timezones and reporting periods. Campaign- and keyword-level reporting helped inform bid and budget decisions.

Architecture

Airflow and Lambda jobs imported campaign, ad-group and keyword data alongside revenue and conversion data from affiliate partners. A Python reporting API joined that data for an internal Next.js/Tailwind dashboard. The surrounding platform also used S3-hosted landing-page variants and SNS-to-Slack notifications.

What I built

  • Integrated Google Ads, Bing Ads and Facebook campaign data, including the Google Ads API v13 migration.
  • Built Voluum, ClicksCo, System1 and Yahoo importers that stored revenue and conversions by campaign and hour, plus conversion reporting back to Bing and Google.
  • Built campaign and ad-group reporting features showing profit/loss, budget surplus and profit-history sparklines, with filters, per-user column choices and hourly refresh.
  • Worked on product-feed formatting, brand/category filtering, authenticated downloads, the WordPress theme, Gutenberg blocks and S3 export.

Engineering decisions

  • Revenue imports corrected timezones, deduplicated records and applied revenue-share calculations before reporting.
  • Landing-page variants were selected using weighted configuration from S3 to support experiments.
  • SNS-to-Slack notifications and conversion-operation alerts surfaced failures.

Technologies

Python, Google Ads API, Next.js, Tailwind, Apache Airflow, AWS (Lambda, RDS, S3, SNS), WordPress, Slack.

Results

The reporting tools brought advertising costs and affiliate revenue into a joined view for campaign analysis. Timezone correction and deduplication addressed specific risks in comparing those records, while the portal made the resulting reports easier to explore. The landing-page tooling supported experiments alongside that reporting work.

Have a Python, AI or automation problem?

Tell me what is slowing the business down, what you have tried, and what a successful outcome looks like. I'll help you identify the most sensible next step.