Social Media
& Web Analytics

Twelve Months of Channel Data in Python · Oxyzn Internship

The Project

A year of channel data nobody had looked at properly. The question was who was actually paying attention.

Oxyzn had twelve months of LinkedIn, Meta and Google Analytics data and a content programme running on instinct. I exported the raw platform data, analysed it in Python, and turned it into two reports: one on social performance and audience, one on the web portal.

The headline finding was an audience mismatch. The followers the company had built were mostly HR people. The people actually visiting the page were mostly Business Development and Marketing. Those are two different buyers, and the content was written for only one of them.

This work was completed during a marketing analyst internship at Oxyzn between March and June 2024. Figures on this page are calculated from the company's own LinkedIn and Google Analytics exports for April 2023 to April 2024.

Role Marketing Analyst Intern Mar – Jun 2024
Channels LinkedIn company page Founder LinkedIn Facebook & Instagram Web portal (GA4)
Stack Python pandas matplotlib & seaborn Google Analytics 4
Output 2 report decks 35 & 29 slides Content recommendations

The Data

Twelve months, four channels, three separate exports that did not agree with each other.

1,108Posts analysed
58,992Impressions
1,262New followers
2,057Unique page visitors

The LinkedIn exports arrive as three separate workbooks with different shapes: daily content metrics, a row per post, and follower and visitor breakdowns split across six sheets each. Dates came through as text in inconsistent formats, and several columns were empty because the account had never run sponsored posts.

The first real work was making the three sources line up on a single timeline in pandas so that content activity, follower growth and page visits could be read against each other rather than one at a time.

The Audience Mismatch

Who follows you and who visits you turned out to be different people.

Job functionFollowersPage visitors
Human Resources393561
Business Development1921,006
Marketing120945

Human Resources was the largest follower group by a wide margin, which matched how the content was written. But when I profiled page visitors rather than followers, Business Development and Marketing were ahead of HR, and by a factor of five and eight on their own follower counts.

That gap is the useful part. Followers reflect who was reached in the past. Visitors reflect who is investigating the company now. A content programme aimed only at HR was speaking past two of the three groups actually showing up.

Profiling in Python

Time series for behaviour, distribution analysis for audience.

Cover of the Oxyzn social media analytics report Cover of the Oxyzn portal Google Analytics report

The notebook runs two kinds of analysis. Time series over the twelve months for impressions, comments, engagement rate, follower growth and page views, to find when attention moved and whether posting activity explained it. Then distribution analysis across location, job function, seniority, industry and company size, for followers and visitors separately, which is where the mismatch surfaced.

Engagement rate needed care. The mean across posts looks strong, but the distribution is skewed by low-impression posts where a single reaction produces a large percentage. Reading the histogram rather than the average was the difference between an encouraging number and an honest one.

What the Audience Actually Looked Like

Seniority, geography and company size, from the follower and visitor breakdowns.

DimensionFinding
SenioritySenior was the largest group among both followers and visitors
GeographyLondon area accounted for 516 followers, well ahead of any other location
Company sizeConcentrated in 11 to 200 employees, with a second cluster at 1,001 to 5,000
IndustryFollowers skewed to IT and consulting; visitors skewed to advertising and software

The company size split mattered commercially. A product sold into small companies and a product sold into enterprises need different proof, different pricing conversations and different content. The data showed both audiences present, which is a positioning decision, not a posting-schedule decision.

Reflection

The first time an analysis of mine changed what somebody wrote.

This was an internship project, and it was the first piece of work where I saw analysis land as a decision rather than a document. The audience finding was not complicated. It came from putting two breakdowns side by side that the platform shows on separate screens, which is precisely why nobody had noticed it.

It set the pattern for how I have worked since: the value is rarely in the individual metric. It is in the comparison nobody made because the tool did not put the two numbers on the same page.

Next project
Diagnostic Tool & Conversion Design