hopefully this might help you guys:
i had a global total of about 29 hours. most of it mec. almost equal as US. fraction of it China. i was looking at my stats, and noticed i have played every map EXCEPT kubra dam and Songhua Stalemate.
so i found a server and played 2 rounds on kubra dam. started as usmc, got switched (by server) to mec. won the first, lost the second. total of about 37 min. still no ribbon...
but later that night, i checked my stats: got the mid-east service ribbon. checked bfhq, and it shows i got it...
at this point, i've played ALL the mec maps, but not the china ones. i'm gonna play the stalemate map tomorrow, and see if i get it.
now, i only played 1 or maybe 2 rounds on Mashtuur City, total of 15 minutes, but have won no rounds. so, obviously (i hope) wins have nothing to do with the ribbon.
My guess: play every map for at least a full round. and then, after a certain amount of global time, you'll get the badge. it might also have a total time in a theater (MEC or china). I'll keep you posted if i get the chinese ribbon tomorrow...