Here we go, yet again....
'Gonna' is not an abbreviation of 'going to'.
'Gonna' is not - I repeat NOT - an informal alternative to 'going to'.
Nor does it have anything to do with slang.
And it is NOT something that anyone chooses to say, or not to say, according to the situation.
So what is 'gonna'? I'll tell you what it is, just like I, and the other teachers on this site, have told people what feels like a million times.
'Gonna' is a transcription of what it sounds like when native speakers say the two words 'going to' in fast and relaxed speech. It is not an actual word at all. It's just a sound. Nobody chooses to say it. It just happens naturally.
Don't try to say 'gonna', because it just sounds unnatural when non-natives, who think that it is an independent single word, try to say it.
Don't write it either. When you see it written, in song lyrics, slogans, cartoon dialogues and subtitles, it is simply an imitation of spoken language.
If you don't believe this, look through the pages here and italki and you will see that it is only the non-natives who write 'gonna' (and 'wanna'). Native English speakers don't use this in normal written contexts, because it isn't actually a word.