Well, her recall on our walks can be somewhat wishy washy. So lately, what I've been doing is bringing treats with me, and the first time, I call her to "Come!", (usually she's sniffing something) she doesn't even acknoledge me, So I'll repeat it dragging it out while running backwards.
You know what I did with Lyric...for the longest time, I never used my cue word unless I had him on a long line or unless I was positive he was indeed coming. I would entice him, making weird, silly, playful noises, run the other way, squat down with my arms outstretched, pretend I was looking at something behind a bush or hide behind a tree, just making wooooo hoooo noises, not "come." No way. What if he didn't come, I thought. Then he finds out that he doesn't have to, that "come" means nothing. You don't want to repeat commands. So, the best way is to entice and when you dog is obviously coming, within arm's reach, say, "come" and then make a fuss over her, treats, tug games...just make it wonderful. Never bribe...that is show her the treat first. She needs to come first, then get the reward. Make sure your reward is awesome. Use less exciting treats in easy places, no distractions and use better ones for more difficult situations. Do this for a very long time. When she is coming 90% of the time by your enticing her, then you can start adding your cue word. I use "let's go" because I reserve "come" for a formal come where he must sit in front. You can do both. "Let's go" to me is having Lyric come along somewhere in my vicinity. So, decide what your commands will mean and be consistant.
This way....by not using your command when you can't be sure you can enforce it, you're not poisoning the cue word. For a long time, you reward every single time she comes, even when she comes to you on her own accord and is just about to reach you, you can use the word, "come" and reward her. This will further associate coming to you with good things. If she starts coming to you 50 million times in a 15 minute segment, just to get the goodies, start varying the schedule. And then stop rewarding her when she comes but you haven't given her the command. That's how to undo that. But at first, it's good to make her see that coming to you is always, always a good thing. It just helps with that habit I was talking about.
Here's something else I have always done with my dogs: We go on off leash hikes in the mountains here where I live. I carry some treats in my pocket and call them to me. (they're really reliable now this way) But to keep them on their toes, I call them, give them, have them sit around me and give them each a treat. Then I turn them loose again. I practice several times on a walk. They learn that they get a treat and the fun doesn't end. They get to go back to their rip roaring. So, if you call your dog (when she gets really good on the command) you can turn her loose again several times before going inside. And then, make sure it's pretty fun in there for a few mintues.
Jose use to lag when it was time to get in the car after our hike. He'd be taking his own sweet time, sniffing things, peeing on things while the others were glad to be in the car because they were tired and wanted to go home. So, I'd be waiting and waiting for the slow poke. I started giving him a cookie everytime he got in the car. That cured that little problem. Now, Mr. food obsessed comes quickly and promptly to get in the car. I give them all a treat periodically for that.
When you call her to come or entice her, make sure it's not for some horrible thing, like ending all her fun she's having or clipping her nails. Try to make coming in the house = more games for a few minutes, a treat and do the awful thing later. Then you go get her to clip her nails. Don't use your cue to come. That sort of thing....
When she is coming 90% of the time with your cue word, then, and only then start varying the schedule of reinforcers. You give her a treat every 2 times, then 4, then 1, then 6, then 2, then 8.....skip around, making no pattern. Gradually over time, you can space them out more but continue varying the times that you reward.
Start out in very low distractions to practice. Skip around between skills; do some sit/stays, down/stays, heel and back to a couple of recalls, then maybe a game of tug. That helps keep them from getting bored. Some dogs, like my Doberman get bored easily and too much repitition is just no good.
Only move up to the next step in the distraction hierachy when the previous step is mastered. When she can do it well in mild distractions, go to different locations and different situations, different weather, different scenery. Dogs need practice in every situation because they don't generalize well. So, if she comes in one place, coming in another is sometimes like a completely different thing...doesn't mean the same thing to her. This goes for sit, stay and anything else.
This is why I hate aversives, collar corrections etc because dogs get scolded for something they haven't been reinforced for enough and in enough variations.
Set your dog up to succeed, find what motivates her the most for any given context. It's not always the same reward.
If your dog is playing fetch and loves this game and she brings you the ball to throw again, she's not going to give a rip about a belly rub or pat, maybe not even a treat. Right now she's thinking, "throw the ball. throw the _______ball!" LOL. So, that's her reward. Throw it immediately if you're trying to teach her to retrieve. That's just an example. Use your imagination.
Yes, it is indeed like the slot machines. LOL.