There is an advantage that small businesses have over large when it comes to marketing. The large company would like to have it but it takes too much effort for the large businesses to do it at their scale. The reason small businesses do not take greater advantage of it is that they too often are trying to mimic large company marketing. That advantage is that they build a relationship with and stay in front of the customer.
Large companies can only market broadly, that is cast a big net. So, as a net result they may be able to catch a large number of people. However, they do it at a huge cost. Those television ads cost big dollars, as do billboards, magazine ads, radio spots, and massive internet advertising. It takes a lot to make a net profit and it is never clear what form of advertising is working for them.
Small companies have the advantage of building relationships with their clients. This makes a very strong bond that is not easy to break. See, with mass marketing a business is only as good as the last commercial. Let's take car insurance. One day someone likes this commercial and gets their car insurance. Next time the car insurance payment is due they may like someone else's commercial. However, a local insurance agent can have a relationship with their clients and the next time insurance is due people simply renew with them. Another insurance agent cannot easily take over that account.
The mistake many small businesses make is to take their clients for granted and never build a relationship. If a business treats them like a commodity, then the customer will treat the business like a commodity.
Building a relationship is fairly easy, it is about interacting with them personally. Getting to know them. Then when one markets to them via mailings, emails, promotional products, etc. it has more meaning for the client.