Background:
- We manage 1000s of campaigns
- We query the campaigns spending each round hour
- We use the synchronous method to get real-time date
- The hourly job takes roughly 30 minutes to complete
Steps we’ve taken:
Still, since we are making 100-200 calls each hour, each call takes around 10-15 seconds — the bottom line is 30 minutes process
We need the process to take few minutes only
What else can be done to further optimize the process?
Thanks
Hello, @themoneytimeweb. Thanks for reaching out and for providing these details.
To make sure I understand, the issue is only with the asynchronous analytics endpoints. Is that right?
A few things:
- How are you deciding which IDs to pass into each request?
- Could you please provide a single example request that is taking 10-15 seconds? A majority of asynchronous analytics jobs take less than a second to finish processing.
Working with multiple users to overcome the user limit
Could you elaborate here? Using multiple users has no effect when working with our asynchronous analytics endpoints (in terms of the number of jobs that can be created).
In case you haven’t come across it, this page describes the differences between the synchronous and asynchronous endpoints.
Hi Juan, thank you for your reply.
- We are using the synchronous endpoint, as I wrote originally, becuase we need real-time data
- Our first request is asking for all campaigns with status ‘active’; than we take this reply and break it to batches of 20, and make a request for the costs of the campaigns in batches of 20
- Again, we are working on the synchronous one, not the a-sync one
- We are using multiple users on the synchronous where we are limited in making 200 requests per user
So lets please try to address the issue we are having with the synchronous endpoint
Thanks!
Thanks for clarifying, @themoneytimeweb.
Two things made me think you were referring to our asynchronous endpoints: that you mentioned a “job,” which is how we refer to what’s created after an asynchronous analytics create request, and that you said that each call is taking “10-15 seconds.” Our synchronous endpoints all have a 5-second timeout, so 10-15 seconds is not possible; you’d see a 503.
What’s your app ID? Please share an example request, as I previously asked for.
Our first request is asking for all campaigns with status ‘active’; than we take this reply and break it to batches of 20, and make a request for the costs of the campaigns in batches of 20
Have you taken a look at how many requests return no data (i.e., all null values) for a given entity ID?
Once we have an example request, we’ll be able to provide more guidance.