From what I could find with that product description of the fan, I don't think, that you even can control it via PWM. It has a brushless motor (like most of these small DC fans), which means, that the supplied voltage goes to an internal driver circuit, which then controls the fan motor. Brushless motors need such a circuit, so that the phases of the motor get activated at the correct moment.
When providing a PWM voltage to such a driver you are only turning its power on and off very quickly. That doesn't control its speed. Such fans are just not made for speed control. So, if you really need speed control, you need to buy a different fan.
There will be exceptions, but generally you can divide such fans by the number of wires coming out of it:
- 2 Wires: These fans only have the power connections (Vcc and ground). Thus they cannot be controlled and you don't know how fast they spin.
- 3 Wires: In most cases the third wire gives out a pulse signal indicating the speed of the fan. Depending on the fan that might be one pulse per revolution or more.
- 4 Wires: The 4th wire is commonly the PWM control wire. With this wire you can control the speed of the fan. Check the datasheet and info of the fan to see, what voltage is needed to control it. It might be, that the 5V PWM from the Arduino Mega is enough voltage, so that you can connect the PWM pin of the fan directly to the Arduino. If it needs more voltage, then you still need a transistor to create the higher voltage PWM.
So: If you buy a brushless DC fan with 4 wires you should be good to go. Otherwise make sure, that the fan, that you are buying, is capable of being controlled via PWM. The seller should provide information about such things (at least reputable sellers do that).