I've just come back from the USA and was discussing this very point with an "American friend" as I noted that Candians I have met do not respond well to the suggestion they might me American and seem happier with North American (which I understand entirely, speaking as an English person living in Scotland). Her answer was that "American" just a lazy abbreviation that had become accepted in the USA because there wasn't a ready made term such as "Canadian", "British" or "Australian" and United Statesish or United Statesian sounded a little clumsy.

I was interested to hear my friend's definition of a "Yankee".
To people outside the US, a Yankee is someone who lives in the US. To someone who lives in the US, a Yankee is someone who lives in the North. To a Northerner, a Yankee is someone who lives in New England. To a New Englander, a Yankee is someone who lives in New Hampshire. To
someone who lives in New Hampshire, a Yankee is someone who eats pie for breakfast.