I initially wanted to write "John Doe launched an offensive on Mr. X," as I understand that "John Doe launched an attack on Mr. X" is correct.
Yet, in search engines, it appears that "an offensive against someone" is far more common than "on someone," where "an attack against someone" and "on someone" are both very common, "on" being actually more common than "against."
Would you agree, in this context where it is directed at someone, that unlike "attack," "offensive" should be followed by "against" and not "on"?