“Great company, fair pricing, my e-commerce business went from $4k in sales monthly to over $30k monthly within a few months. Highly recommend.”
Tactical Force USA, public Google review
We took over their Meta account on 14 May 2026. The review went up in September.
What they sell
Optics accessories. Anti-reflective devices, the hex covers that stop a lens flashing in the sun, covers for weapon lights, and the mounts that hold it all together. The store runs on BigCommerce.
Read a product name and the problem shows up on its own. EOTech EFLX KillFlash Hex Cover. Streamlight TLR7 Gas Pedal. Nobody types that unless they already own an EOTech EFLX or a TLR7. Every SKU fits one thing. Show a man with a TLR7 a cover for something else and it isn’t a near miss, it’s useless to him.
That cuts both ways. The buyer is easy to convince once you find him, because he already knows what he needs. Finding him is the whole job.
The account was optimizing for clicks
Meta gives you what you ask for. This account asked for clicks and got them.
That’s worse than it sounds. Meta builds its model around whatever event you mark as the goal, so an account optimized on clicks spends every dollar learning what a clicker looks like. Clickers are cheap and there are plenty of them. They also don’t check out. Months of budget went into training the system to find the wrong person, and no campaign could tell which products were worth funding, because nothing past the click was counted.
What changed, in order
Tracking first. Off clicks, onto purchase value, so Meta optimizes toward return on ad spend. Nothing below this line works until the platform counts the right event, which is why it went first and why we didn’t touch creative for a while.
Bidding, to match. The conversion event and the bidding strategy have to agree. Ask for revenue while the bidding is still set up for traffic and you get neither.
Two campaigns instead of one. Testing and scaling stopped sharing a budget. One campaign tests products and creative. Anything that proves itself gets promoted into the second, and that’s where the spend goes.
That split does two things. Testing stops bidding against the winners, so it stays cheap. And a new creative starts in the test campaign. It never lands on top of a scaling one, which matters because Meta’s guidance puts the learning phase at roughly 50 conversions a week per ad set. Drop an untested creative into a campaign that’s finally stable and you hand back the stability to find out.
The category is most of the difficulty
Meta limits what a firearms-adjacent advertiser can show and say, and this catalog sits right on the line. These are accessories, not weapons. The platform doesn’t always read them that way.
So approvals became part of the work, and that changes the pace. A rejection costs a review cycle, and review cycles are days you don’t get back. It shaped the creative more than any performance test.
It’s also why the two-campaign split earned its keep. When some of the catalog can’t run at all, the products that can run have to be found fast and funded properly. A single campaign doing both jobs is too slow when you’re already losing days to review.
What it took
Monthly sales went from $4,000 to over $30,000 in the months after 14 May. That’s the client’s own figure, from the public review above, and it’s sales through the door.
Their ad spend is theirs, so it isn’t here.
What we’d do differently
Skip Google.
We spent time there before accepting that its policies on firearm parts and accessories left too little of the catalog eligible for the spend to be worth it. Meta’s restrictions are real and workable. Google’s weren’t, and no amount of structure or feed work was going to change that.
That time should have gone into Meta creative from day one. If you sell in a restricted category, find out which platforms will actually take your catalog before you build anything on them.

