Heart Pulse sensor analog value doesn't change even if sensor pressed by finger
Why my pulse sensor is unable to detect beats?
Chances are something wrong.  The only way to tell what specifically is to keep debugging.  If you don't have access to an Oscilloscope or Multimeter, this will involve checking your wiring and altering code.  To check wiring, make sure:

Minus (-) is to ground
Plus (+) s to your + voltage
S is to the A0.

Is my pulse sensor a clone or not?
It is likely.  Open-Source Hardware tends to have many clones.
If it is a clone, can it be fixed somehow?
Clones sell repeatedly if they work.  There is little point making a clone sensor that does not- if scamming was the point, one could ship empty envelopes.  If two different people make the exact same electronics, we hope that they behave very similarly regardless of who made them.
Do I need to buy another one?
Possible but unlikely.  If you can prove your sensor is defective, a seller might be willing to ship a replacement.
Try the following code to test the sensor.  My guess is that you are missing something due to Serial spamming.  Beyond that, taking a pulse may be tricky - the unskilled can easily pronounce some of the living as dead from just the wrist.  I suggest putting it to your throat to be on the safe side.

int minSV;
int maxSV;
unsigned int Frame;

void setup() {
 minSV=500;
 maxSV=0;
 Serial.begin(9600);
}


void loop() {
 int sensorValue = analogRead(A0);
 if(sensorValue &gt; maxSV) maxSV = sensorValue;
 if(sensorValue &lt; minSV) minSV= sensorValue;
 Frame = Frame +1;
 if(Frame &gt; 10000) //would be 1s if frame takes 0.1 ms
 {
  //might want to reset min and max here after debug is complete and sensor is verified to work.  Until then, reset the arduino to reset min and max.
  Frame =0;
  Serial.print(&quot;Min: &quot;);
  Serial.print(minSV);
  Serial.print(&quot;; Max: &quot;);
  Serial.println(maxSV);
 }
 // removed: delay(1);        // delay in between reads for stability
}