As far as I know, urban airship use GCM to send notifications to
Android. That means that regardless of who is sending the notification at
the server side, a single receiver can receive all the messages. That's why
you get two notifications, since both receivers get the same message and
display the notification. Your own receiver can handle both the messages
sent by you and by Urban Airship.
The only reason to have two different receivers is if you want your app
to handle messages from one source differently than messages from the other
source. In this case you should use a different sender, and each receiver
would have to check the sender of the message to decide whether it should
Beside that, I don't see how sending messages via Urban Airship would
make them arrive faster, since they are also sending the message to GCM
servers, which do the actual delivery. The only way Urban Airship can be
faster, is if they are using the Cloud Connection Server API while you are
using the simpler HTTP API for direct calls to GCM.