@zwang00 we recommend you have a look at our Analytics Best Practices - these should give you all the information you may need in order to get all the data you might need in the best possible way.
Pay particular attention to the cost headers and understanding those, as well as setting up some appropriate retry logic. In cases where you get a 503 for example, you should make use of the retry-after header to know how long you should wait before retrying.
You can find a sample script with some of our best practices here.