When using MobilePush, some of our subscribers have a large amount of DeviceID's associated with them (between 10 and 30). When sending to these subscribers, all devices are sent to, as they are all opted in. This is costing us in Super Messages as well as inaccurate reporting.

Is there any way in MobilePush to deduplicate at send time to only send to the most recently registered device to avoid duplicated sends? This functionality exists in a similar way for Email Studio - de-duplicate by email address option in the Send Wizard.

  • 1
    There is a "de-dupe" check box when creating your audience list. Does this not work?
    – Bill Mote
    Jul 15, 2021 at 11:53
  • @BillMote - sorry, this option isn't working for us, as it is de-duplicating based on ContactKey. These DeviceID's are associated with a phone uninstall and re-installing an app. Is there supposed to be some process where here where SFMC knows that an app has been uninstalled and opt the device out? Feb 4, 2022 at 12:47
  • 2
    There is no event sent by the platform that can be used by your application or our SDK when the application is uninstalled. Both Apple and Google will eventually notify the SFMC that the device is no longer valid.
    – Bill Mote
    Feb 4, 2022 at 13:08
  • Thanks @BillMote - do you know of any reason why Apple/Google might not be eventually notifying SFMC that the device is no longer valid? We are seeing old devices from over a year ago still set to "Opted In" associated with the Contact. It looks like a vague known issue with Apple: developer.apple.com/forums/thread/88332. We are looking at a custom API solution to opt these devices out to try and compensate for this, but this shouldn't be necessary. Feb 4, 2022 at 13:48
  • 1
    Our system is dependent on Apple/Google. If they're still active with them, then they're going to be listed as still active with us. There's no way around it.
    – Bill Mote
    Feb 4, 2022 at 18:56

1 Answer 1


My suggestion:

  • Ask the mobile dev team to put a value for example "mainActiveDevice" in the _PushTag table and a customAttribute in the _PushAddress table to indicate the most and current active device that the customer are using.
  • Use SQL query to send PushNotification to the most recent 3 devices only

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .