Intuition when to use Global Average pooling?

I am still not sure when to Global average pooling v/s Fully connected Network v/s Fully convolutional Network. If someone could explain to me that would be awesome.