Interface for the atomx rest api.
For more information read the full documentation online, report bugs in github or see the atomx wiki
fromatomximportAtomx# create atomx sessionatomx=Atomx('[email protected]', 'password') # get 10 creativescreatives=atomx.get('Creatives', limit=10) # the result is a list of `atomx.models.Creative` models# that you can easily inspect, manipulate and updateforcreativeincreatives: print('Creative ID:{c.id}, state:{c.state}, ''name:{c.name}, title:{c.title}'.format(c=creative)) # update title for the first creative in listcreative=creatives[0] creative.title='shiny new title'# the session is inherited from `atomx` that made the get requestcreative.save() # create a new profilefromatomx.modelsimportProfileprofile=Profile(advertiser_id=23, name='test profile') # Note that you have to pass it a valid `Atomx` session for create# or use `atomx.create(profile)`profile.create(atomx) # now you could alter and update it like the creative aboveprofile.name='changed name'profile.save() # you can also get attributesprofiles=atomx.get('advertiser', 88, 'profiles') # equivalent is to pass the complete resource path as string instead of argumentsprofiles=atomx.get('advertiser/88/profiles') # same as above# profiles is now a list of `atomx.models.Profile` that you can# read, update, etc again.profiles[0].click_frequency_cap_per=86400profiles[0].save() # working with searchs=atomx.search('mini*') # s is now a dict with lists of search results for the different models# with the model id and namepublisher=s['publisher'][0] # get the first publisher..publisher.reload() # .. and load all the dataprint(publisher) # now all publisher data is therepublisher.history() # gets all changes made to this publisher# reporting example# get a report for a specific publisherreport=atomx.report(scope='publisher', groups=['hour'], metrics=['impressions', 'clicks'], where=[['publisher_id', '==', 42]], from_='2015-02-08 00:00:00', to='2015-02-09 00:00:00', timezone='America/Los_Angeles') # check if report is readyprint(report.is_ready) # if pandas is installed you can get the pandas dataframe with `report.pandas`# you can also get the report csv in `report.content` without pandasdf=report.pandas# A datetime index is automatically set when group by a hour/day/month.# calculate mean, median, std per hourmeans=df.resample('H', how=['mean', 'median', 'std']) # and plot impression and clicks per daymeans['impressions'].plot() means['clicks'].plot()To install the python atomx api, simply:
$ pip install atomxor if you want to use ipython notebook and reporting functionality:
$ pip install atomx[report]