Is it possible to get invoice/billing data using Facebook Ads Api? - facebook-ads-api

Can't find any information about invoices/billing in Facebook Ads Api documentation.
Is it possible at all to get Facebook ad account invoice data using any api?
I know I can get amount spent by ad account per day. Unfortunatelly this is not always identical to the amount on the invoices.

Unfortunately I don't think there is an API for this.
Spend is a little tricky to get right. Facebook can retroactively change the numbers, apply credits to your account, and so on, so you can't really rely on any spend numbers retrieved via the API being 100% accurate.
We ended up setting up a task that runs every night and retrieves spend data for the past 28 days. This was the only way we could ensure that our numbers matched FB's exactly. If you require a similar level of accuracy you might want to consider setting up something along those lines.

Related

What is "sf_max_daily_api_calls"?

Does someone know what "sf_max_daily_api_calls" parameter in Heroku mappings does? I do not want to assume it is a daily limit for write operations per object and I cannot find an explanation.
I tried to open a ticket with Heroku, but in their support ticket form "Which application?" drop-down is required, but none of the support categories have anything to choose there from, the only option is "Please choose..."
I tried to find any reference to this field and can't - I can only see it used in Heroku's Quick Start guide, but without an explanation. I have a very busy object I'm working on, read/write, and want to understand any limitations I need to account for.
Salesforce orgs have rolling 24h limit of max daily API calls. Generally the limit is very generous in test orgs (sandboxes), 5M calls because you can make stupid mistakes there. In productions it's lower. Bit counterintuitive but protects their resources, forces you to write optimised code/integrations...
You can see your limit in Setup -> Company information. There's a formula in documentation, roughly speaking you gain more of that limit with every user license you purchased (more for "real" internal users, less for community users), same as with data storage limits.
Also every API call is supposed to return current usage (in special tag for SOAP API, in a header in REST API) so I'm not sure why you'd have to hardcode anything...
If you write your operations right the limit can be very generous. No idea how that Heroku Connect works. Ideally you'd spot some "bulk api 2.0" in the documentation or try to find synchronous vs async in there.
Normal old school synchronous update via SOAP API lets you process 200 records at a time, wasting 1 API call. REST bulk API accepts csv/json/xml of up to 10K records and processes them asynchronously, you poll for "is it done yet" result... So starting job, uploading files, committing job and then only checking say once a minute can easily be 4 API calls and you can process milions of records before hitting the limit.
When all else fails, you exhausted your options, can't optimise it anymore, can't purchase more user licenses... I think they sell "packets" of more API calls limit, contact your account representative. But there are lots of things you can try before that, not the least of them being setting up a warning when you hit say 30% threshold.

Google API returning same volume many times

If you use Google's API you will get some books.. Example:
https://www.googleapis.com/books/v1/volumes?q=harry&printType=books&startIndex=0&maxResults=40
This gets 40 unique books.
Now if you use pagination, you will just get the same books again and again.
Try
https://www.googleapis.com/books/v1/volumes?q=harry&printType=books&startIndex=0&maxResults=8
Then https://www.googleapis.com/books/v1/volumes?q=harry&printType=books&startIndex=8&maxResults=8
Then https://www.googleapis.com/books/v1/volumes?q=harry&printType=books&startIndex=16&maxResults=8
Each time you will get the same book, such as Labor and Monopoly Capital but not if you use no pagination.
I guess Google can't afford real engineers anymore.
What a joke. Run this many times (refresh page). It alternates between two books.
https://www.googleapis.com/books/v1/volumes?q=harry&printType=books&startIndex=7&maxResults=1
totalItems also changes when the result changes. How embarrassing.

Get property rating from Booking.com API

I need to get the rating value from Booking.com system for specific property. Is there an API that provides information such as overall rating and other useful information for properties that are listed in their system?
In case anyone has the same question I will answer in short - the booking.com API is not public! In order to get access you need to write them an email and provide a lot of information about why you're going to use it, how and who is going to use it. Describe your business model etc. Also you need to producing an average of 500 bookings per month. Then wait an approval process.
I decided to simple parse the website and get the overall rating.

Queries on the Parse

I would like to ask the below queries. Apologies if it was asked before, I couldn't find them.
W.r.t the new pricing it is mentioned as "You can send us your analytics events any time without being limited by your app's request limit." - Is it that any interactions made for the Parse analytics does not count towards to the overall api request limit set for the app?
From the answers to the queries posted a while back in the forums, there was some distinction between the normal and premium customers - Is there any now..?
I am using the android sdk - Just out of curiosity, can two objects(or more) have the same object id by any chance?
Thanks.
Answers to all of your questions:
Correct. Analytics does not contribute to API request limits or burst limit.
On the new pricing, there is no longer a distinction. All previously "Pro-Only" features are available to everyone.
No, multiple objects cannot / will not have duplicate objectId values.

Exhaustive Search on Google Places

I'm trying to use Google Places API for a business locator app, but am having trouble creating an exhaustive database of business.
1.The API call only returns 20 results back.
2.The "type" restriction (e.g. type=restaurant) does not pick up all businesses by type in a given zip. I could use "keyword" but not all restaurants have restaurant in their name, and not all spas have "spa" in their name.
3. Each call produces the same set of results from day to day, and with only 20 returns per call, how am I to get a more exhaustive database of businesses?
I can try to get around the above three constraints by looping through a very well degraded search of businesses: say by zip code, some list of keywords, category type. But I still won't get close to picking up the 50 million or so businesses in google places.
In fact, even when I make a call for restaurants and bars in my own neighborhood, I don't pick up popular places down the block from me.
How is the API usable for an app that locates places then?
Any suggestions on how to create a more exhaustive search?
Thanks,
Nad
I'm not able to answer your question regarding Google Places API.
But for your requirements ('business locator app', 'I don't pick up popular places down the block from me') I suggest you try Yelp Search API:
Yelp's API program enables you to access trusted Yelp information in real time, such as business listing info, overall business ratings and review counts, deals and recent review excerpts.
Yelp is a popular review website with a capable API and you may test the quality of database and the devoted user base they have at Yelp homepage.
Note:
They keep some data for themselves and do not return everything in response.
The (free) dev account has a limit of 100 calls per 24 hours.
I know I'm late but maybe it helps someone these days.
By default, each Nearby Search or Text Search returns up to 20
establishment results per query; however, each search can return as
many as 60 results, split across three pages.
You need to use the field nextPageToken that you will receive on the first search to get the next page.
https://developers.google.com/places/web-service/search
An issue in stack overflow says:
There is no way to get more than 60 results in Places API. Some people
tried to file a feature request in Google issue tracker, but Google
rejected it with the following comment Unfortunately Places API is not
in a position to return more than 60 results. Besides technical
reasons (latency, among others) returning more than 60 results would
make the API be more like a database or general-purpose search engine.
We'd rather improve search quality so that users don't need to go so
far down a long list of results.
google places api more than 60 results
I faced the same difficulties that you did and decided to use the Yelp API instead. It is free, very complete and returns up to 1000 results. You should however check the terms of service before doing anything. It does not provide the website of the business (only the Yelp website link).
https://www.yelp.com/developers/documentation/v3/business_search
Other options I investigated at that time:
Foursquare ventures. (It was very expensive, and only returned up to around 100 results)
Here places API
Factual Places (I don't think this one is an API)
Sygic Travel API (Specific for touristical spots)
Planet.osm (OpenStreetMap)

Resources