The IPW allows you to build a model of how units select into treatment. For example, adoption probability can be a declining function of geographic distance from the pilot regions. Then these weights down-weight untreated units with very different probability of adoption when you do the DID comparison. The vanilla DID weights all comparison control units equally.

There is R code, examples, and papers cited [here][1].

The fact that only successful treatments are contagious may still present a problem, but it’s hard to say more without lots of detail about the setting.


  [1]: https://psantanna.com/DRDID/index.html