Ashith Prakas · Software engineer, Kochi, India
ashithprakas@gmail.com

I turn public web data into dashboards and reports a team can use.

Here is one I built: 4,687 Google ads from 19 direct-to-consumer brands, in a table that stays fast and charts that filter it.

Ad Watch dashboard in light theme: stacked bars of ads per brand by format, a weekly line chart of new ads, and a filter row above them. Ad Watch dashboard in dark theme: stacked bars of ads per brand by format, a weekly line chart of new ads, and a filter row above them.
Ad Watch, a snapshot from 27 October 2026. Angular, TypeScript and AG Grid; the charts are hand-written SVG.

What the data says about how DTC brands advertise

I wanted to see how direct-to-consumer brands run Google ads. Using a scraper I built and publish on Apify, I collected every ad that Google's Ads Transparency Center listed as shown in the US over 30 days for 50 brand domains. 19 of the 50 returned ads: 4,687 in total.

Format mix by brand, sorted by video share

Video sharequip: 72 ads; text 0, image 9, video 63quip88%Oura: 275 ads; text 55, image 66, video 154Oura56%Gymshark: 151 ads; text 43, image 37, video 71Gymshark47%AG1: 470 ads; text 243, image 19, video 208AG144%Away: 318 ads; text 168, image 54, video 96Away30%Rhone: 114 ads; text 59, image 25, video 30Rhone26%Purple: 240 ads; text 133, image 58, video 49Purple20%Glossier: 299 ads; text 172, image 67, video 60Glossier20%Helix Sleep: 245 ads; text 166, image 31, video 48Helix Sleep20%Casper: 90 ads; text 49, image 24, video 17Casper19%Harry's: 36 ads; text 21, image 9, video 6Harry's17%Brooklinen: 722 ads; text 422, image 196, video 104Brooklinen14%Reformation: 263 ads; text 201, image 31, video 31Reformation12%Vuori: 235 ads; text 184, image 31, video 20Vuori9%Summer Fridays: 160 ads; text 101, image 46, video 13Summer Fridays8%Allbirds: 111 ads; text 54, image 49, video 8Allbirds7%Warby Parker: 760 ads; text 693, image 27, video 40Warby Parker5%Olipop: 23 ads; text 21, image 1, video 1Olipop4%HelloFresh: 103 ads; text 83, image 19, video 1HelloFresh1%
Chart data as table
BrandAdsTextImageVideoVideo share
quip72096388%
Oura275556615456%
Gymshark15143377147%
AG14702431920844%
Away318168549630%
Rhone11459253026%
Purple240133584920%
Glossier299172676020%
Helix Sleep245166314820%
Casper9049241719%
Harry's36219617%
Brooklinen72242219610414%
Reformation263201313112%
Vuori23518431209%
Summer Fridays16010146138%
Allbirds111544987%
Warby Parker76069327405%
Olipop2321114%
HelloFresh103831911%

What this doesn't show: it is one snapshot of what Google lists, only 19 of the 50 domains returned ads, and it says what brands are running, not what works.

How it is built

A scraper collects the ads, with retries and rate-limit handling. A script turns them into a clean dataset and a short report. The dashboard sits on top. The same three steps work for your data.

What I can build for you

Data feed and report

A recurring dataset or report from public web sources, sent where you work: email, a Google Sheet, CSV or a simple page. See a sample weekly report (PDF, one page)

Dashboard sprint

One clear dashboard on your own data: large tables, filters, charts, and live updates or a map where they help.

Small web app or internal tool

A small working web app from a written spec: an admin panel with login, an order or booking form, or a tool that replaces a spreadsheet. Angular and TypeScript, with a .NET or Python backend.

A typical project: a written spec and fixed quote within 48 hours, a few weekends to build (a data feed usually two to three, a larger app four to six), two rounds of changes, then 30 days of fixes. Fixed price, agreed in writing.

About

I'm a software engineer in Kochi with about four years building data-heavy web applications, mostly Angular and .NET. On the side I build and publish scrapers and small data products. I take one client project at a time and work from a written brief, with no calls, which keeps the scope clear and the price fixed.

Contact

Send a short written brief to ashithprakas@gmail.com: the outcome you want, where the data lives, and a rough budget and date. I reply within 48 hours and deliver on weekends.

Elsewhere: GitHub · Apify