Для получения инфо о доставке пуша, надо использовать XMPP
Вот гугломануал Firebase Cloud Messaging XMPP Protocol
ПО для отправки сообщений (комп, сервер и т.д.) <-- обмен по протоколу XMPP ---> Сервер гугла FCM <-------> Андроид устройство
использовал IdTCPClient
Host fcm-xmpp.googleapis.com
Port 5236
IdTCPClient.Connect
вот сценарий
>>> - отправка на FCM
<<< - ответ от FCM
>>> здороваемся (IdTCPClient1.IOHandler.WriteLn )
<stream:stream to="gcm.googleapis.com" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">
<<< (IdTCPClient1.IOHandler.Readln)
<stream:stream from="gcm.googleapis.com" id="000000000000" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">
<<<
<stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>X-OAUTH2</mechanism><mechanism>X-GOOGLE-TOKEN</mechanism><mechanism>PLAIN</mechanism></mechanisms></stream:features>
>>> логинимся
<auth mechanism="PLAIN" xmlns="urn:ietf:params:xml:ns:xmpp-sasl">Base64Encode(sender_id@gcm.googleapis.com+ApiKey)</auth>
<<<
<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
>>> отправляем обязательный пакет
<stream:stream to="gcm.googleapis.com" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">
<<<
<stream:stream from="gcm.googleapis.com" id="000000000000" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">
<<<
<stream:features><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features>
>>> отправляем обязательный пакет
<iq type="set"> <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"></bind></iq>
<<<
<iq type="result"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>sender_id@gcm.googleapis.com/000000</jid></bind></iq>
>>> отправляем сообщение
<message><gcm xmlns="google:mobile:data">{"message_id":"20","delivery_receipt_requested":true,"to":"DeviceToken","data":{"title":"Message title","message":"Message text"}}</gcm></message>
<<< получаем подтверждение, что гуглосервер принл сообщение от нас
<message><data:gcm xmlns:data="google:mobile:data">{"message_type":"ack","from":"DeviceToken","message_id":"20"}</data:gcm></message>
<<< получаем подтверждение, что сообщение доставлено на андроид-устройство
<message to="sender_id@gcm.googleapis.com" from="devices@gcm.googleapis.com" type="normal"><gcm xmlns="google:mobile:data">{"data":{"message_status":"MESSAGE_SENT_TO_DEVICE","device_registration_id":"DeviceToken","message_sent_timestamp":"1524141512313","original_message_id":"20"},"time_to_live":0,"from":"gcm.googleapis.com","message_id":"dr2:20","message_type":"receipt","category":"com.pushTest"}</gcm></message>
Ключ АПИ и идентификатор отправителя надо брать в консоли Firebase https://console.firebase.google.com/u/0/project
Подробно описано тут http://blog.rzaripov.kz/2017/02/firebase-android-ios.html