You need to craft campaign messages in a way that aligns with people's values, and doesn't threaten how they seem themselves. Social psychology shows that if someone is told to do something that poses a risk of maintaining a vision of themselves, they won't even entertain the idea.
For instance, in Michelle Obama's 'Let's Move Campaign' to reduce childhood obesity. Rather than promoting the dangers of sugar-sweetened beverages, she instead focused on getting kids to drink more water. Rather than vilifying the food industry, Barack Obama worked with the industry to reduce fat and sodium in foods like cereal and macaroni.
This led to huge change. Childhood obesity no longer increased, and among children between the ages of 2 and 5, it dropped by nearly half.
Another example is the 'Just Say No' Campaign, launched by former lady Nancy Reagan to reduce drug use among teenagers.
Initially they supported actions that focused on generating fear, like bringing police officers into school to educate kids about the dangers of drugs. Research shows children who went through the program were more likely to use drugs and alcohol as they got older, not less.
Fortunately, the campaign was corrected, making it effective. Now it focuses more on role-playing the kinds of conversations kids should have when confronted with drugs.
A great article on Effective Activism: