Package: tune_reporting
tune-reporting-pythonTUNE Reporting API client library.BadgesdocsinfotestspackageotherInstallpipinstalltune_reportingRequirementsPrerequisites:Python 3.0API Key:To use SDK, it requires you toGenerate API KeyRun Examplesmakerun-examplestmc_api_key=[TMCAPIKEY]Run Testsmaketesttmc_api_key=[TMCAPIKEY]ClassesThere are multiple TUNE API Classes available:TuneV2AdvertisersTuneV2AdvertiserSitesTuneV2AdvertiserStatsActualsTuneV2SessionAuthenticateTuneV3LogsAdvertisersClicksTuneV3LogsAdvertisersImpressionsclass TuneV2AdvertisersGet``ADVERTISER ID``for this account based upon provided``TMC_API_KEY``.Codetune_v2_advertisers=TuneV2Advertisers(logger_level=logging.INFO,logger_format=LoggingFormat.JSON,logger_output=LoggingOutput.STDOUT_COLOR)try:tune_v2_advertisers.tmc_auth(tmc_api_key=tmc_api_key)iftune_v2_advertisers.get_advertiser_id(auth_value=tmc_api_key,auth_type=TuneV2AuthenticationTypes.API_KEY,request_retry=None):advertiser_id=tune_v2_advertisers.advertiser_idpprint(advertiser_id)exceptTuneRequestBaseErrorastmc_req_ex:print_traceback(tmc_req_ex)pprint(tmc_req_ex.to_dict())print(str(tmc_req_ex))exceptTuneReportingErrorastmc_rep_ex:pprint(tmc_rep_ex.to_dict())print(str(tmc_rep_ex))exceptExceptionasex:print_traceback(ex)print(get_exception_message(ex))Example$cdexamples$makeexample_tune_v2_advertiserstmc_api_key=[...TMCAPI-Key...]{"asctime":"2017-11-29 08:58:30 -0800","levelname":"INFO","name":"tune_reporting","version":"2.3.1","message":"TMC Authentication: Start"}{"asctime":"2017-11-29 08:58:31 -0800","levelname":"INFO","name":"requests_mv_integrations","version":"00.06.01","message":"TMC Authentication: Finished","request_time_msecs":635}{"asctime":"2017-11-29 08:58:31 -0800","levelname":"INFO","name":"tune_reporting","version":"2.3.1","message":"TMC v2 Advertisers: Advertiser ID"}{"asctime":"2017-11-29 08:58:31 -0800","levelname":"INFO","name":"requests_mv_integrations","version":"00.06.01","message":"TMC v2 Advertisers: Finished","request_time_msecs":260}{"asctime":"2017-11-29 08:58:31 -0800","levelname":"INFO","name":"tune_reporting","version":"2.3.1","message":"TMC v2 Advertisers: Advertiser ID: [ADVERTISER ID]"}[ADVERTISERID]class TuneV2SessionAuthenticateGet time-limited``SESSION TOKEN``after authenticating provided``TMC_API_KEY``.Codetune_v2_session_authenticate=\TuneV2SessionAuthenticate(logger_level=logging.INFO)try:iftune_v2_session_authenticate.get_session_token(tmc_api_key=tmc_api_key,request_retry=None):session_token=tune_v2_session_authenticate.session_tokenprint(session_token)exceptTuneRequestBaseErrorastmc_req_ex:print_traceback(tmc_req_ex)pprint(tmc_req_ex.to_dict())print(str(tmc_req_ex))exceptTuneReportingErrorastmc_rep_ex:pprint(tmc_rep_ex.to_dict())print(str(tmc_rep_ex))exceptExceptionasex:print_traceback(ex)print(get_exception_message(ex))Example$cdexamples$makeexample_tune_v2_session_authenticatetmc_api_key=[...TMCAPI-Key...]{"asctime":"2017-11-29 09:11:09 -0800","levelname":"INFO","name":"tune_reporting","version":"2.3.1","message":"TMC v2 Session Authenticate: Get Token"}{"asctime":"2017-11-29 09:11:11 -0800","levelname":"INFO","name":"requests_mv_integrations","version":"00.06.01","message":"TMC v2 Session Authenticate: Finished","request_time_msecs":1550}{"asctime":"2017-11-29 09:11:11 -0800","levelname":"INFO","name":"tune_reporting","version":"2.3.1","message":"TMC v2 Session Authenticate","session_token":"[SESSION TOKEN]"}{"asctime":"2017-11-29 09:11:11 -0800","levelname":"INFO","name":"tune_reporting","version":"2.3.1","message":"TMC v2 Session Authenticate: Finished"}[SESSIONTOKEN]class TuneV2AdvertiserSitesGet listing of Advertiser’s Mobile Apps (aka Sites) for this account based upon provided``TMC_API_KEY``.Codetune_advertiser_sites=TuneV2AdvertiserSites(logger_level=logging.INFO)try:tune_advertiser_sites.tmc_auth(tmc_api_key=tmc_api_key)forcollect_data_item,collect_errorintune_advertiser_sites.collect(auth_value=tmc_api_key,auth_type=TuneV2AuthenticationTypes.API_KEY,auth_type_use=TuneV2AuthenticationTypes.API_KEY,request_params={'limit':5}):pprint(collect_data_item)exceptTuneRequestBaseErrorastmc_req_ex:print_traceback(tmc_req_ex)pprint(tmc_req_ex.to_dict())print(str(tmc_req_ex))exceptTuneReportingErrorastmc_rep_ex:print_traceback(tmc_rep_ex)pprint(tmc_rep_ex.to_dict())print(str(tmc_rep_ex))exceptExceptionasex:print_traceback(ex)print(get_exception_message(ex))Example$cdexamples$makeexample_tune_v2_advertiser_sitestmc_api_key=[...TMCAPI-Key...]{"asctime":"2017-11-29 09:04:25 -0800","levelname":"INFO","name":"tune_reporting","version":"2.3.1","message":"TMC Authentication: Start"}{"asctime":"2017-11-29 09:04:25 -0800","levelname":"INFO","name":"requests_mv_integrations","version":"00.06.01","message":"TMC Authentication: Finished","request_time_msecs":593}{"asctime":"2017-11-29 09:04:25 -0800","levelname":"INFO","name":"tune_reporting","version":"2.3.1","message":"Start Advertiser Sites find"}{"asctime":"2017-11-29 09:04:26 -0800","levelname":"INFO","name":"requests_mv_integrations","version":"00.06.01","message":"TuneV2AdvertiserSites.collect: Finished","request_time_msecs":263}[JSONRESPONSE]{'id':533,'name':'TEST UP TIME - DONT DELETE','package_name':'unknown','status':'active','url':'http://website.com',}...class TuneV2AdvertiserStatsActualsLogs of Advertiser’s Actuals Stats for this account based upon provided``TMC_API_KEY``.Codetune_v2_advertiser_stats_actuals=\TuneV2AdvertiserStatsActuals(logger_level=logging.INFO,logger_format=LoggingFormat.JSON,logger_output=LoggingOutput.STDOUT_COLOR)tz=pytz.timezone("America/New_York")yesterday=datetime.now(tz).date()-timedelta(days=1)str_yesterday=str(yesterday)try:auth_response=tune_v2_advertiser_stats_actuals.tmc_auth(tmc_api_key=tmc_api_key)assertauth_responsetune_v2_advertiser_stats_actuals.collect(auth_value=tmc_api_key,auth_type=TuneV2AuthenticationTypes.API_KEY,auth_type_use=TuneV2AuthenticationTypes.API_KEY,start_date=str_yesterday,end_date=str_yesterday,request_params={'timezone':'America/Los_Angeles','format':TuneV2AdvertiserStatsFormats.CSV,'fields':("ad_clicks,""ad_clicks_unique,""ad_impressions,""ad_impressions_unique,""ad_network_id,""advertiser_id,""country.code,""date_hour,""events,""installs,""is_reengagement,""payouts,""publisher_id,""publisher_sub_ad.ref,""publisher_sub_adgroup.ref,""publisher_sub_campaign.ref,""publisher_sub_publisher.ref,""publisher_sub_site.ref,""site_id"),'group':("country_id,""is_reengagement,""publisher_id,""publisher_sub_ad_id,""publisher_sub_adgroup_id,""publisher_sub_campaign_id,""publisher_sub_publisher_id,""publisher_sub_site_id,""site_id"),'timezone':"America/Los_Angeles",'limit':5},request_action=TuneV2AdvertiserStatsActions.EXPORT,request_retry={'delay':15,'timeout':30,'tries':10})exceptTuneRequestBaseErrorastmc_req_ex:print_traceback(tmc_req_ex)pprint(tmc_req_ex.to_dict())print(str(tmc_req_ex))exceptTuneReportingErrorastmc_rep_ex:pprint(tmc_rep_ex.to_dict())print(str(tmc_rep_ex))exceptExceptionasex:print_traceback(ex)print(get_exception_message(ex))forrowinlist(tune_v2_advertiser_stats_actuals.generator):pprint(row)Example$cdexamples$makeexample_tune_v2_advertiser_stats_actuals_export_downloadtmc_api_key=[...TMCAPI-Key...]{"asctime":"2017-11-29 09:17:21 -0800","levelname":"INFO","name":"tune_reporting","version":"2.3.1","message":"TMC Authentication: Start"}{"asctime":"2017-11-29 09:17:22 -0800","levelname":"INFO","name":"requests_mv_integrations","version":"00.06.01","message":"TMC Authentication: Finished","request_time_msecs":516}{"asctime":"2017-11-29 09:17:22 -0800","levelname":"INFO","name":"tune_reporting","version":"2.3.1","message":"TMC v2 Advertiser Stats: Collect: export"}{"asctime":"2017-11-29 09:17:23 -0800","levelname":"INFO","name":"requests_mv_integrations","version":"00.06.01","message":"TMC v2 Advertiser Stats Find: Finished","request_time_msecs":1490}[ADVERTISERACTUALSSTATS]{'ad_clicks':'48','ad_clicks_unique':'0','ad_impressions':'0','ad_impressions_unique':'0','ad_network_id':0,'advertiser_id':877,'conversions':'0','country':{'code':'NL','name':'Netherlands'},'country_id':528,'currency_code':'USD','date_hour':'2017-11-28 19:00:00','events':'0','installs':'0','is_reengagement':'0','payouts':'0.00000','publisher':{'name':'PINGDOM DO_NOT_DELETE'},'publisher_id':142476,'publisher_sub_ad':{'ref':''},'publisher_sub_ad_id':'0','publisher_sub_adgroup':{'ref':''},'publisher_sub_adgroup_id':'0','publisher_sub_campaign':{'ref':''},'publisher_sub_campaign_id':'0','publisher_sub_publisher':{'ref':''},'publisher_sub_publisher_id':'0','publisher_sub_site':{'ref':''},'publisher_sub_site_id':'0','purchase_validation_status':'0','site':{'mobile_app_type':'iOS','package_name':'unknown','store_app_id':None,},'site_id':533,}...LicenseMIT License.Release History2.7.3 (2018-02-16)migrate to github/TuneLab2.7.2 (2018-02-07)Updated requirements.txt2.7.0 (2018-01-28)Upgraded to use pyhttpstatus-utils 0.2.2.Upgraded to use requests-mv-integrations 0.7.5.2.6.1 (2018-01-25)migrate to github/tuneinc2.6.0 (2017-12-10)readthedocs.org2.4.0 (2017-11-29)READMETravis CITestsExamples2.2.3 (2017-11-19)Tests2.2.1 (2017-10-27)Support logging-mv-integrations refactor2.2.0 (2017-03-26)Replace ‘json’ with ‘ujson’2.1.8 (2017-03-12)Switch to using safe-cast package2.1.7 (2017-02-27)Requirements2.1.6 (2017-02-07)Requirements2.1.5 (2017-02-03)Python 3.6 Upgrade2.1.2 (2017-01-27)CleanupRequirements2.1.0 (2017-01-14)README.rstHISTORY.rstsetup.py2.0.0 (2016-11-20)TUNE Reporting API v31.1.1 (2016-01-25)TUNE Reporting API v2Changes in Handling Exports and Logs1.0.0 (2015-04-01)TUNE Reporting API v2Initial PyPi release0.0.1 (2014-10-15)First Commit