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 and how treatment is assigned. It may work if you can control for lagged outcomes and distance to pilot regions in the assignment equation.


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