The rule about online lead generation is simply this: "Whoever can afford to pay the most wins."
Competitors can't copy you paying more for your leads. That is one thing totally in your control.
If they could pay more for leads than you can, they would be doing it, but if they can't, they can't. End of story. They lose.
Even when it comes to SEO, it's not cheap to get there, and Google likes to change the rules because they don't make any money from you ranking high in their search results.
Google obviously favors big brands like HomeAdvisor, BBB, Thumbtack, and Yelp. Local roofing companies wanting to rank high on the Google search results can often take 6 months to 1 year of focused SEO before they start ranking on Page 1.
In my opinion, your best bet for attracting phone calls and new prospects is to invest heavily in paid Google Advertising (AdWords PPC) and intelligently pay as much as you possibly can to DOMINATE your market and stay in front of people when they are actively looking for roofing help in the areas you serve.
In my opinion, Facebook is a waste of money most of the time. You can build your brand using Facebook, something I personally do, but that doesn't make the phone ring right away.
Roofing is usually a once every 10, 15, 20, or 30-year event. It would be extremely difficult to focus first on building your brand when most people won't need you for a decade or two.
You have to invest your money on getting in front of the eyeballs that need you right now, this very minute. Google Advertising (AdWords PPC) is the best way to do that, but it's expensive.
Coca-cola can build their brand because most people are making beverage decisions several times a day.
Roofers can't because most people are not making roofing decisions but once every decade or two...maybe longer.
The marketing service I offer local roofing companies is managed Google Advertising (AdWords PPC). I spend your money on Google and charge you to do it.
How much a lead costs depends on hundreds of variables including season, weather, competition, and Google's ever-changing algorithm. Generally speaking, most markets generate paid leads in the range of one for every $150 - $250 in clicks.
Some of my markets, like Houston, are less, but some others, like Long Island NY run as high as $250 per lead.
Yes, you can get leads for less. I can get a lead for $50, but it might take me a few months before it hits. You can't build a business on 1 lead every 3 months. You have to DOMINATE your market, and that means you have to invest your money...lots of money.
On top of the Google click charges, I charge a management fee of $500 per month or 20% of your click charges with Google (whichever is greater). I have a setup fee of $1,000 which includes a custom-built website branded for your company that is leased to you for as long as we do business together. I have a 2-page agreement, but no long-term contracts.
If at the end of 30 days, you (or I) decide we aren't right for each other, we walk away friends.
You're out the $1,000 setup fee, plus whatever I invested in your Google clicks for the month. If we decide to keep going, you pay my invoice of $500 or 20% of click charges (whichever is greater), and we keep on going month-to-month.
Let me know if you have any questions.