I would like to list some of them below
Notification payload - 2KB in GCM, 4KB in APNs.
Saves 1 notification/app (APNs), 100 per device (GCM). This is done when a device is offline.
GCM supports multiple platforms.
Acknowledgement cannot be sent in APNs, but is possible in GCM when implementing with XMPP.
FCM is a newer version of GCM, and have almost same properties.