Denote xy=z, then the variables y and z can take all positive real values independently. For these variables the equality has the form
yzg(yz+g(y))=g(g(z)+1).(1)
Fix any value of z and vary y over R+, then g(g(z)+1) is fixed while yz attains all positive real values, hence g(yz+g(y)) attains all positive real values, i.e. g is surjective.
Suppose y2−y1g(y2)−g(y1)>0 for some positive reals y2=y1. Substitute z=y2y1⋅y2−y1g(y2)−g(y1) into (1) firstly with y=y2, secondly with y=y1. In both cases g(yz+g(y))=g(y2−y1y2g(y2)−y1g(y1)), hence we will obtain that y1=y2 – a contradiction. Thus y2−y1g(y2)−g(y1)≤0 for all positive reals y2=y1 which means that g is non-strictly decreasing.
Since g is surjective and non-strictly decreasing, it's continuous and, in particular limy→+∞g(y)=0. Now consider the initial equation
xg(x+g(y))=g(g(xy)+1),
when y→+∞. Then g(x+g(y))→g(x) and g(xy)+1→1. Hence xg(x)=g(1) and g(x)=xc, where c=g(1). Straightforward verification shows that such function satisfy the problem conditions for any c∈R.