Toilet Training is easy if you keep to the plan.
Dogs are what they call 'substrate specific', which means where they are habituated to going to the toilet is where they will always go.
That's why it's not a good idea to paper train them as it will never be safe to leave the sports section on the carpet again.
Puppies are highly predictable when it comes to toilet time. They will go when they have just woken, had a feed, a romp or every hour and a half or so. If you get that puppy out on the grass when he is most likely to go you'll save yourself a lot of frustration waiting when he's unlikely to go, and a lot of unnecessary clean up jobs.
Older dogs are no different except that they can hang on longer, but a yard dog becoming a house dog still needs a chance to learn the rules.
Punishment for soiling inside is unproductive. You will just raise your dogs stress levels which slows the learning process. Accidents are better ignored and cleaned up without a fuss, and vigilance instead stepped up.
Rubbing a dogs nose in his own eliminations is cruelty and pointless. A dog who doesn't understand yet that toilet happens outside won't understand this either. It doesn't teach him to go outside, only that you are unpredictable and untrustworthy.
The more often you can get that puppy going out on the grass the sooner housetraining is successfully achieved.