You want the 2-argument usage form of CloudDeploy, i.e. CloudDeploy[expr, location].
If I want to share a cloud object, typically I'll name it, which you can do in one line:
CloudDeploy[expr, CloudObject["myObject"]]
If you want to use an unnamed object, you have a couple patterns to use.
The simplest is to deploy first like you've been doing:
CloudDeploy[expr]
Notice the CloudDeploy returns a CloudObject expression. You can use this (either via the output label, like %, or by selecting the CloudObject expression and then using copy/paste) in the 2-argument form:
CloudDeploy[expr, %]
You can also create a new unnamed cloud object first, then deploy it with the 2-argument form:
obj = CloudObject[]
CloudDeploy[expr, obj]
Then you can re-deploy it with the same pattern.
To track credit use, see the CloudLoggingData function and the Usage Dashboard in the webapp, under the profile menu in the upper right of the screen.