You can have your systemd unit bind (BindTo) and depend on (DependsOn) the .device unit for the corresponding network interface (which is automatically loaded) for the said interface as so:
[Unit] Description=Service on interface %I BindsTo=sys-subsystem-net-devices-%i.device After=sys-subsystem-net-devices-%i.device [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/lib/project/my_script.sh start %I [Install] WantedBy=multi-user.target
You'll probably want to have the unit's dependency formalized by adding Wants and After if your custom unit expects to have the network interface actually online by adding these in the [Unit] section:
Wants=network-online.target After=network-online.target
NB: You can verify that .device units are loaded by doing systemctl list-units --type=device.