Both approaches have their place. it really comes down to budget, what you're trying to measure, and how much control you want over the day-to-day.
In-house makes sense if you've got the budget to hire a full team and the patience to find quality talent. Bigger companies can afford that luxury, and when it clicks, the results can be solid because the team lives and breathes the brand.
For startups and mid-range companies, an agency is usually the smarter bet. They come with a prebuilt team that's already market-ready, and because they juggle multiple clients, they've seen what works and what doesn't in the current landscape. You skip the hiring headache and get a group that's already in the trenches.
So if you've got deep pockets and want to manage everything yourself, go in-house. If you want flexibility, no hiring hassle, and a team that's already running similar strategies, go with an agency.
one thing worth calling out: some people hire a single freelancer on the cheap, get burned, and then blame agencies. When i say agency, i mean a real team with real expertise, not someone offering cut-rate services. Cheap usually isn't good. Agencies build their packages around what's actually needed to move the needle.