<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dashboards on Jonathan Franklin</title><link>https://jonnie.github.io/tags/dashboards/</link><description>Recent content in Dashboards on Jonathan Franklin</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 12 May 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://jonnie.github.io/tags/dashboards/index.xml" rel="self" type="application/rss+xml"/><item><title>Ads &amp; Affiliate Revenue Platform</title><link>https://jonnie.github.io/work/ads-revenue-platform/</link><pubDate>Fri, 12 May 2023 00:00:00 +0000</pubDate><guid>https://jonnie.github.io/work/ads-revenue-platform/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;&#10;&lt;p&gt;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.&lt;/p&gt;&#10;&lt;h2 id="architecture"&gt;Architecture&lt;/h2&gt;&#10;&lt;p&gt;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.&lt;/p&gt;</description></item></channel></rss>