A client for interacting with the Amazon Ad API.
pip install amazonadapi==1.0.4
# amazonadapi Client for the Amazon Ad API # Notes: # # The Amazon Ad API pulls only the IDs for each ad tech object. # E.G. client.get_orders('AD_ID') just returns the order IDs. # Take the array of order IDs and call client.get_order('ORDER_ID'). # order_ids = client.get_orders('AD_ID') for order_id in order_ids: order = client.get_order(order_id) # FOR ETL or automated job servers, e.g. SMP, use the following to initialize: from amazonadapi import AmazonClient import os client = AmazonClient() client.refresh_token = os.environ['AMZN_REFRESH_TOKEN'] client.auto_refresh_token() client.set_region() client.get_profiles() client.profile_id = 'BE_SURE_TO_SET_THIS_FOR_YOUR_ORGANIZATION' client.get_advertisers() client.get_orders('AD_ID') client.get_order('ORDER_ID') # Sample code for using browser and command-line to auth: from amazonadapi import AmazonClient client = AmazonClient() client.cli_auth_dance() client.get_profiles() client.profile_id = 'BE_SURE_TO_SET_THIS' # create an order order = AmazonOrder() order.advertiserId = '3678742709207' order.name = 'amazon api test {}'.format(time.time()) order.startDateTime = 1511909961000 # unix time * 1000 order.endDateTime = 1512514761000 # unix time * 1000 hash_order = {"object": { "advertiserId": { "value": order.advertiserId }, "name": order.name, "startDateTime": order.startDateTime, "endDateTime": order.endDateTime, "deliveryActivationStatus": order.status } } created_order = client.create_order(hash_order) # create a line item line_item = AmazonLineItem() line_item.orderId = 'ORDER_ID' line_item.advertiserId = 'AD_ID' line_item.name = 'Test API Line Item Creation' # types: NON_GUARANTEED_DISPLAY,NON_GUARANTEED_MOBILE_APP,NON_GUARANTEED_VIDEO line_item.type = 'NON_GUARANTEED_DISPLAY' line_item.startDateTime = 1506873006000 line_item.endDateTime = 1507045806000 line_item.status = 'INACTIVE' line_item.budget['amount'] = 100 line_item.budget['deliveryProfile'] = 'FRONTLOADED' line_item.budget['deliveryBuffer'] = 1 # recurrenceTypes: DAILY, MONTHLY, LIFETIME line_item.deliveryCaps.append({'amount': 0.9, 'recurrenceType': 'DAILY'}) hashline_item = {"object": { "orderId": { "value": line_item.orderId }, "advertiserId": { "value": line_item.advertiserId }, "name": line_item.name, "type": line_item.type, "startDateTime": line_item.startDateTime, "endDateTime": line_item.endDateTime, "deliveryActivationStatus": line_item.status, "budget" : line_item.budget, "deliveryCaps" : line_item.deliveryCaps } } result = client.create_line_item(hashline_item) client.create_line_item(hashline_item)