As I've stated before, the generalization, as you call it, is not naive or ignorant. It is geographically correct.
If you are from Columbia, you are a South American. If you are from Canada, you are a North American. That is, of course, if you identify yourself by your continent of orgin rather than the more common country of origin.
Being an American, I am from the country called the United States of America. I am also a North American. Being from Columbia would make that person a Columbian and a South American.
Seeing as how this method avoids any and all confusion regarding your nationality and continent of origin, I am curious why you insist of muddling the subject by using vague and confusing terminology?
It is your right to call yourself anything you want. If you want to be an American, good for you. If American, in your lexicon, means anybody in either North or South America (and yes, even the region called Central America), then what do you call people from the United States of America when you need to distinguish them from a Brazilian and a Canadian?