TUNE Reporting API client library.
Project description
tune-reporting-python
TUNE Reporting API client library.
Install
pip install tune_reporting
Requirements
Prerequisites: | Python 3.0 |
---|---|
API Key: | To use SDK, it requires you to Generate API Key |
Run Examples
make run-examples tmc_api_key=[TMC API KEY]
Run Tests
make test tmc_api_key=[TMC API KEY]
Classes
There are multiple TUNE API Classes available:
- TuneV2Advertisers
- TuneV2AdvertiserSites
- TuneV2AdvertiserStatsActuals
- TuneV2SessionAuthenticate
- TuneV3LogsAdvertisersClicks
- TuneV3LogsAdvertisersImpressions
class TuneV2Advertisers
Get ``ADVERTISER ID`` for this account based upon provided ``TMC_API_KEY``.
Code
tune_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) if tune_v2_advertisers.get_advertiser_id( auth_value=tmc_api_key, auth_type=TuneV2AuthenticationTypes.API_KEY, request_retry=None ): advertiser_id = tune_v2_advertisers.advertiser_id pprint(advertiser_id) except TuneRequestBaseError as tmc_req_ex: print_traceback(tmc_req_ex) pprint(tmc_req_ex.to_dict()) print(str(tmc_req_ex)) except TuneReportingError as tmc_rep_ex: pprint(tmc_rep_ex.to_dict()) print(str(tmc_rep_ex)) except Exception as ex: print_traceback(ex) print(get_exception_message(ex))
Example
$ cd examples $ make example_tune_v2_advertisers tmc_api_key=[ ... TMC API-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]"} [ADVERTISER ID]
class TuneV2SessionAuthenticate
Get time-limited ``SESSION TOKEN`` after authenticating provided ``TMC_API_KEY``.
Code
tune_v2_session_authenticate = \ TuneV2SessionAuthenticate( logger_level=logging.INFO ) try: if tune_v2_session_authenticate.get_session_token( tmc_api_key=tmc_api_key, request_retry=None ): session_token = tune_v2_session_authenticate.session_token print(session_token) except TuneRequestBaseError as tmc_req_ex: print_traceback(tmc_req_ex) pprint(tmc_req_ex.to_dict()) print(str(tmc_req_ex)) except TuneReportingError as tmc_rep_ex: pprint(tmc_rep_ex.to_dict()) print(str(tmc_rep_ex)) except Exception as ex: print_traceback(ex) print(get_exception_message(ex))
Example
$ cd examples $ make example_tune_v2_session_authenticate tmc_api_key=[ ... TMC API-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"} [SESSION TOKEN]
class TuneV2AdvertiserSites
Get listing of Advertiser’s Mobile Apps (aka Sites) for this account based upon provided ``TMC_API_KEY``.
Code
tune_advertiser_sites = TuneV2AdvertiserSites( logger_level=logging.INFO ) try: tune_advertiser_sites.tmc_auth(tmc_api_key=tmc_api_key) for collect_data_item, collect_error in tune_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) except TuneRequestBaseError as tmc_req_ex: print_traceback(tmc_req_ex) pprint(tmc_req_ex.to_dict()) print(str(tmc_req_ex)) except TuneReportingError as tmc_rep_ex: print_traceback(tmc_rep_ex) pprint(tmc_rep_ex.to_dict()) print(str(tmc_rep_ex)) except Exception as ex: print_traceback(ex) print(get_exception_message(ex))
Example
$ cd examples $ make example_tune_v2_advertiser_sites tmc_api_key=[ ... TMC API-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} [JSON RESPONSE] { 'id': 533, 'name': 'TEST UP TIME - DONT DELETE', 'package_name': 'unknown', 'status': 'active', 'url': 'http://website.com', } ...
class TuneV2AdvertiserStatsActuals
Logs of Advertiser’s Actuals Stats for this account based upon provided ``TMC_API_KEY``.
Code
tune_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) assert auth_response tune_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} ) except TuneRequestBaseError as tmc_req_ex: print_traceback(tmc_req_ex) pprint(tmc_req_ex.to_dict()) print(str(tmc_req_ex)) except TuneReportingError as tmc_rep_ex: pprint(tmc_rep_ex.to_dict()) print(str(tmc_rep_ex)) except Exception as ex: print_traceback(ex) print(get_exception_message(ex)) for row in list(tune_v2_advertiser_stats_actuals.generator): pprint(row)
Example
$ cd examples $ make example_tune_v2_advertiser_stats_actuals_export_download tmc_api_key=[ ... TMC API-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} [ADVERTISER ACTUALS STATS] { '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, } ...
2.7.2 (2018-02-07)
- Updated requirements.txt
2.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/tuneinc.
2.6.0 (2017-12-10)
- readthedocs.org
2.4.0 (2017-11-29)
- README
- Travis CI
- Tests
- Examples
2.2.3 (2017-11-19)
- Tests
2.2.1 (2017-10-27)
- Support logging-mv-integrations refactor
2.2.0 (2017-03-26)
- Replace ‘json’ with ‘ujson’
2.1.8 (2017-03-12)
- Switch to using safe-cast package
2.1.7 (2017-02-27)
- Requirements
2.1.6 (2017-02-07)
- Requirements
2.1.5 (2017-02-03)
- Python 3.6 Upgrade
2.1.2 (2017-01-27)
- Cleanup
- Requirements
2.1.0 (2017-01-14)
- README.rst
- HISTORY.rst
- setup.py
2.0.0 (2016-11-20)
- TUNE Reporting API v3
1.1.1 (2016-01-25)
- TUNE Reporting API v2
- Changes in Handling Exports and Logs
1.0.0 (2015-04-01)
- TUNE Reporting API v2
- Initial PyPi release
0.0.1 (2014-10-15)
- First Commit
Project details
Release history Release notifications
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size tune_reporting-2.7.2-py3-none-any.whl (53.4 kB) | File type Wheel | Python version 3.6 | Upload date | Hashes View hashes |
Filename, size tune-reporting-2.7.2.tar.gz (34.3 kB) | File type Source | Python version None | Upload date | Hashes View hashes |
Close
Hashes for tune_reporting-2.7.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4b4dde99fd0c01da965cd54f2598c195c72664169bfc9f8be9ab559d7caf81b |
|
MD5 | 9f6a40df2768cb565776803a2bfaab9a |
|
BLAKE2-256 | 1bd6fd43754f8e5e279fab61c3fca655108286e91f2af943971296f0aebf85c2 |