Regarding pinging the clients, use the "get clients" API call to obtain a list of clients in the last x time frame. When I did this, I used 2 hours (7200secs). If you are using Python, use the ping() function from the Ping3 package on Pypi. Adjust the following accordingly for your purpose.
clientvalidationlist = []
clients = Merakiclient.clients.getNetworkClients(network['id'], timespan = 7200)
for client in clients:
if ping(client['ip']) != None:
clientvalidationlist.append({'mfg': client['manufacturer'], 'desc': client['description'], 'ip': client['ip']})
print('Clients responding to ping: {}'.format(len(clientvalidationlist)))
later in the program use the same concept, except use "for client in clientvalidationlist".