Hey !
I have managed to configure my both redundant Internet connection and also load balanced Internet connection.Bellow you see a small schema of how my network looks

I added a switch on the WAN port of the Zyxwall and connected both my fiber and my old ADSL line to the switch, instantly the old ADSL came up by itself as the firewall remember the credentials, i then had two Internet connections !
On the Zyxel you go to configuration -> Network -> Interface and select trunk. You select system default WAN trunk and you select what policy you wish to apply to the trunk (Round robin, least charged line, weight etc)

In order to make the tests quicker i lowered the timeout to 30 seconds. I went to a “what’s my IP” site and i refreshed my browser and my ip had changed between the two connections !
If you have different bandwidth on your Internet links don’t forget to put the “weight” or the bandwidth on the links, otherwise you may send traffic on the slower link and not use all your bandwidth.
I currently use the load balance policy least loaded as it will basically always use the fiber connection unless it’s down. When doing the tests with whats my ip i had it configured as round robin
In case you use DDNS don’t forget to put your backup connection in the configuration as well, that way your shared services will continue to work from your iPhone even if your primary Internet connection is down (Only if you use the host name of course)

If you are planning to do the same, think about using 2 different ISP’s as it’s very likely that if the ISP have problems with fiber connections they could also have problem with ADSL connections.
Oh yes, one more thing, remember to configure each of your connections with a connectivity check, by default the Zyxel check your default GW if the connection is up, but there could be a problem with routing for example that prevent your access to Internet, so i would suggest to configure the Zyxel to ping for exampel google or facebook or a similar site, that way you are sure you stay connected even if your ISP have problems.

You find this option on each connection, all you need to do is check @enable connectivity check@ and select if you like to ping, or check a TCP port, in above example i connect to google using HTTP. I would suggest to select different sites for each connection as you don’t want both connections to get to a failed state if one site is down.
In the above example it is configured 5 failures with a delay between each failure of 30 seconds, that would be 2 and a half minute for the line to get into a failed state. You probably like to lower the values to 2 checks and 5 seconds between each check so the line gets a faulty state after 10 seconds. (Maybe 20 seconds if you include the 5 second timeout that’s set, did not investigate that close)
Happy Easter !