I don't understand why this is true:
you have two vectors
(a,b) and (c,d).
then apparently the product is
(a,b) (c,d) = (ac - bd, ad + cd)
why?
why isn't it (ac, bd) ?


I doubt you have two vectors- what you have are complex numbers! In a general vectors we define addition of vectors, scalar multiplication, and inner, or dot, product. Neither of those products involves two vectors multiplying to give a vector.
It is possible to take a vector space and define such a product on it. There are many different ways to do that. A vector space with such a product is, technically, called an "algebra". There would be nothing wrong with defining multiplication as you suggest except that it wouldn't be very interesting! It just treats the two components as completely separate and gives nothing more than if we treated them as two separate numbers.
I am going to assume that addition in your set is defined "coordinate wise": (a, b)+ (c, d)= (a+c, b+d).
Notice that (a, 0)+ (b, 0)= (a+b, 0) and (a, 0)(b, 0)= (ab-0, a0+ 0b)= (ab, 0). So the set of all pairs of the form (a, 0) form a "sub-algebra". And since the assignment a->(a, 0) is an isomorphism, we can think of the set of real numbers as being a subset of this algebra- we interpret (a, 0) as being the real number a.
What is important about that particular definition of multiplication is that (0, 1)(0, 1)= (0(0)- 1(1), 0(1)+ 1(0))= (-1, 0). That is, (0, 1) is a member of the group whose "square" (multiplication with itself) is the pair we are associating with -1. If we "label" every pair (a, 0) with the real number a, then (-1, 0) is labeled "-1". If we "label" (0, 1) with "i" then we can say that "i2= -1".
Further, (1, 0) would be labeled "1" and since, by scalar multiplication and addition, (a, b)= (a, 0)+ (b, 0)= a(1, 0)+ b(0, 1), each such pair would be labeled a+ bi.
That is normally done to define the complex numbers. What is often done in earlier grades, just declaring thatdoesn't make sense (as often pointed out by students!) because we would have to say what
meant before we could define i by that! And the variation used to avoid that, defining i by "[itex]i^2= -1[/itex]" doesn't work because the complex numbers has two numbers that have that property, i and -i, and we cannot say (as we do in the real numbers) that we mean the positive one because the complex number field is not an "ordered" field.