There may be internal damage, which has resulted in internal bleeding. When a large amount of blood accumulates internally, it may take weeks to be reabsorbed.
I suggest, wait longer and see if it improves. If it does not improve after a few more weeks, or if it gets worse, go back and have it checked again.
You could wrap a bandage around it to reduce the swelling. Don't make it too tight.
It may not be infected. You could take oregano oil, in case it is infected, or to prevent infection.
You could apply Aloe vera gel to the skin in the affected area. Some may be absorbed into the body and promote internal healing.