The degree of difficulty in positioning a website depends on its competition. The stronger it is, the higher the requirements for positioning companies will be and, as a result, not all of them will be able to promote you.
If you operate in a niche or your goal is to appear on local search results then you will have an easier task. Your competition should not be too big so entering the top 10 should be fairly easy. Most companies should be able to position your website. With a little self-denial and free time, you can even try to position yourself.
If you have a company that operates on a market with medium competition and / or on a large territory, then positioning your site will be much more difficult. You may not even be able to "stick" to some phrases. In this situation, instead of regular positioning, you need to look for advertising agencies that deal with integrated marketing.
Thanks to content marketing, you'll be able to "collect" traffic from hundreds of rarely typed phrases (though it can also help you get a few places for very popular phrases) with very low competition.
Marketing in social networks will not have a direct impact on your position in Google, but thanks to it you can accumulate so-called natural links that can improve this position.
If you want to promote yourself to the first pages of high competition results then you need to be prepared for the fact that in the vast majority of cases it will not be possible to appear on them (and sometimes even on the second and third pages). Most of these results are occupied by market titans who spend millions on positioning (for many years).
In this case, the best solution will be for you to fight for a long tail with the help of the already mentioned content marketing and promotion with as many channels as possible. In other words, go to the integrated marketing agency again.
Check here tight slice