Both can be effective in different circumstances, but the economic leverage of buycotting is a double-edged sword. I am somewhat skeptical of the political power of spending more money on stuff because it makes consumption feel like political action, when it’s really not.
Making a stand on principle should ideally involve some real cost to the person making the statement. When workers strike, they forgo their wages. When Kap took a knee, he cost himself a lucrative career. "I’m going to go to Starbucks even more to fight for " just doesn’t have the same impact because there’s no hardship involved.
I’ve noticed that a lot of political movements have trended to this method of following the form of past protests without thinking about the actual impact of it. When students stage a walk-out to protest some issue and the school administration supports it, there’s no impact because there’s no cost. Kids already don’t really want to sit in school, so finding a reason not to do so doesn’t have a cost to them. I’d be much more impressed if the kids marched and then had to go to detention or come in on Saturday for class. When you don’t give anything up, you’re just following a fad, not standing for a principle. Or like the regular “don’t buy gas” days that people try to organize, that have actual zero impact on anything. “Don’t drive your car for a day” has an impact, because you actually change your behavior. “Don’t buy gas for a day” does nothing, because it comes at no cost to anyone. People just buy gas on other days.
Whatever it is about the world that you want to change, I bet that buying more Starbucks will not materially advance that goal.
Buycotting is all too easy for corporations with massive advertising budgets to manipulate people into spending more. We’ll end up with different political coalitions congregating around brands the way that sports fans celebrate their teams. It’s a lot more valuable to a brand to get people to really love it than to worry about the people who hate it, so buycotting could easily end up with increasing polarization in every sphere, while boycotting instead works to cause the worst actors to trend toward a more neutral position.