My vote is for OPC UA unless you exceed the supported tag / MonitoredItem count (there’s documentation from Siemens with recommendations based on the model).
OPC UA is going to be more reliable and easier to configure (kind of, see below) or troubleshoot. You don’t need all the diagnostics Ignition drivers have because you’ll OPC UA subscriptions report only when the value changes, there’s no polling of the device involved.
The cons are the tag/item limit and the configuration burden of needing to define UDTs in Ignition that mirror the structured values you’ll access in the PLC and use derived tags + jsonGet/jsonSet to pick out all the members, because structured OPC UA values come into Ignition as a JSON object. See OPC UA struct data type? - #2 by Kevin.Herron