This partial code you added does nothing
There are sooo many examples of this simple use of virtual pins all over this forum. Please just do some searching and reading… you don’t even need to focus on relays, just LOOK at the code. and try it.
Set a Button Widget with virtual pin 1
Then whenever that button is pressed or released, the part of the code you did have (called a Blynk Function) will get called (runs) and the integer pinData will take on the value you have set in the widget (typically 0 or 1)
You then need to do something with that value in order that make something work… for example triggering GPIO5 (Pin 15 in Arduino) to go LOW on 0 or HIGH on 1
… Like this…
BLYNK_WRITE(V1) //Button Widget is writing to pin V1
int pinData = param.asInt(); // This integer takes on the value or state of the button
digitalWrite(15, pinData); // This command outputs the pinData value or state to a physical pin - in this case GPIO5 or Arduino pin 15
As for your relays working or not… not all GPIO pins are created equal… some have built in pull-up resistors, some are used for special purposes and cannot be pulled LOW when booting, all tend to use a different numbering layout on the board then is used in the Arduino code, etc.
Some relays are triggered on a LOW others on a HIGH signal
Some relays require additional pull up or pull down resistors in order to properly trigger
Some relays require the full 5v to trigger or at least more current the some ESP’s seem to produce.
All you can to is experiment…we cannot tell you exactly what will or will not work… or why. We can only guess based on what you tell us.