That's not a common English phrase, no. "On the beach" describes a specific physical situation, i.e. "The whale is lying on the beach." or "After swimming for hours, I was finally standing on the beach." "At the beach" refers more to the general circumstances of the seaside.
I think this one could go either way. "Ayer" is yesterday - it's already ended. Yesterday also implies they weren't there the day before, or the day before that. They were just there yesterday, presumably for a definite number of hours. I think the preterite is best to use here, but a lot of sentences like this I think both would work.