If we have ack number so from there we can trace that how many bytes are received and which byte is need next so then what is the use of Ack flag there?
The ACK flag indicates that the Acknowledgment Number field is significant, ie. containing a meaningful value. When a socket connection has already been established that is nearly always the case, but it isn't while a connection is being established.
Acknowledgment Number: 32 bits
If the ACK control bit is set this field contains the value of the next sequence number the sender of the segment is expecting to receive. Once a connection is established this is always sent.