3

I've been tasked with finding out how to use the Facebook ads api to get budget estimates for reaching a particular audience. I believe I'm looking for the estimated daily reach or possibly the delivery estimate. I'm looking for a response something like this one from here:

"data": {
      "users": 14600000,
      "bid_estimations": [
         {
            "unsupported": false,
            "location": 3,
            "cpa_min": 79,
            "cpa_median": 145,
            "cpa_max": 195,
            "cpc_min": 45,
            "cpc_median": 70,
            "cpc_max": 87,
            "cpm_min": 8,
            "cpm_median": 20,
            "cpm_max": 27
         }
      ],
      "estimate_ready": true
   }
}

My code so far:

with open('secrets.json') as f:
    secrets = json.load(f)

FacebookAdsApi.init(
    secrets['app_id'],
    secrets['app_secret'],
    secrets['access_token']
)

me = AdAccountUser(fbid='me')

my_account = me.get_ad_account()

targeting_spec = {
    'geo_locations':{
        'countries':['US'],
    },
    'age_min': 20,
    'age_max': 40,
}

promoted_object = {
    'application_id':   secrets['app_id'],
    'page_id':          secrets['page_id']
}

params = {
    'promoted_object': promoted_object,
    'optimize_for': AdSet.OptimizationGoal.offsite_conversions,
    'targeting_spec': targeting_spec,
}

account_reach_estimate = my_account.get_reach_estimate(params=params)
print(account_reach_estimate)

But I am getting the following response which is lacking the bid estimations:

[<ReachEstimate> {
    "estimate_ready": true,
    "users": 128000000
}]

In summary I am looking for CPM bid estimate from reachestimate but it is not being returned.

Milo
  • 335
  • 4
  • 15

1 Answers1

2

The examples of Ad Account Reachestimate seem to show the result you are getting. Using Ad Account Delivery Estimate instead gives a response with bid_estimate:

account_delivery_estimate = my_account.get_delivery_estimate(params=params)

Results in:

[<AdAccountDeliveryEstimate> {
    "bid_estimate": {
        "max_bid": 1998,
        "median_bid": 1536,
        "min_bid": 1242
    },
    "daily_outcomes_curve": [
        {
            "actions": 0,
            "impressions": 0,
            "reach": 0,
            "spend": 0
        }
    ],
    "estimate_dau": 75052199,
    "estimate_mau": 129000000,
    "estimate_ready": true
}]
ikkuh
  • 4,473
  • 3
  • 24
  • 39
  • Thank you, so then these bid estimates should be the total paid to reach this audience then? Also shouldn't there be a second daily outcomes curve object as I've seen from other people's examples or is that not important for my question? – Milo Jan 11 '18 at 15:27
  • I'm not 100% sure myself, but according to [this Facebook post](https://www.facebook.com/groups/pmdcommunity/permalink/1487479981304465/) extra estimations with more 'spend' are only included if Facebook believes they have high confidence about the predictions. – ikkuh Jan 11 '18 at 16:50