def update_params_for_auth(self, headers, querys, auth_settings): """Updates header and query params based on authentication setting. :param headers: Header parameters dict to be updated. :param querys: Query parameters tuple list to be updated. :param auth_settings: Authentication setting identifiers list. """ if not auth_settings: return for auth in auth_settings: auth_setting = self.configuration.auth_settings().get(auth) if auth_setting: if not auth_setting['value']: continue elif auth_setting['in'] == 'cookie': headers['Cookie'] = auth_setting['value'] elif auth_setting['in'] == 'header': headers[auth_setting['key']] = auth_setting['value'] elif auth_setting['in'] == 'query': querys.append((auth_setting['key'], auth_setting['value'])) else: raise ApiValueError( 'Authentication token must be in `query` or `header`')
def get_with_http_info(self, authorization, **kwargs): # noqa: E501 """Gets budgets # noqa: E501 Get the list of budgets with the specified filters. If an advertiser or a budget is requested but is missing from current user's portfolio, it will not be included in the list. If neither budgets ids nor advertisers ids are provided, then the user's portfolio will be used. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_with_http_info(authorization, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param str authorization: JWT Bearer Token (required) :param str advertiser_ids: Optional. One or more advertiser ids, E.g. 78, 12932, 45236. If the requested advertiser ids are not part of the user's portfolio, they will be skipped. :param str budget_ids: Optional. One or more budget ids, E.g. 75, 1931, 532. If the requested budget ids are not part of the user's portfolio, they will be skipped. :param bool only_active_campaigns: Optional. Filters by campaign status, allowing to only display active campaigns or not. Default value is true. :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(list[BudgetMessage], status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = [ 'authorization', 'advertiser_ids', 'budget_ids', 'only_active_campaigns' ] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError("Got an unexpected keyword argument '%s'" " to method get" % key) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'authorization' is set if ('authorization' not in local_var_params or local_var_params['authorization'] is None): raise ApiValueError( "Missing the required parameter `authorization` when calling `get`" ) # noqa: E501 collection_formats = {} path_params = {} query_params = [] if 'advertiser_ids' in local_var_params: query_params.append( ('advertiserIds', local_var_params['advertiser_ids'])) # noqa: E501 if 'budget_ids' in local_var_params: query_params.append( ('budgetIds', local_var_params['budget_ids'])) # noqa: E501 if 'only_active_campaigns' in local_var_params: query_params.append( ('onlyActiveCampaigns', local_var_params['only_active_campaigns'])) # noqa: E501 header_params = {} if 'authorization' in local_var_params: header_params['Authorization'] = local_var_params[ 'authorization'] # noqa: E501 form_params = [] local_var_files = {} body_params = None # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept([ 'application/json', 'text/json', 'application/xml', 'text/xml', 'text/html' ]) # noqa: E501 # Authentication setting auth_settings = ['Authorization'] # noqa: E501 return self.api_client.call_api( '/v1/budgets', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='list[BudgetMessage]', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get( '_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def update_audience_metadata_with_http_info(self, audience_id, authorization, request, **kwargs): # noqa: E501 """Update an Audience metadata. # noqa: E501 Update an Audience metadata. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_audience_metadata_with_http_info(audience_id, authorization, request, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param int audience_id: Mandatory. The id of the Audience to update. (required) :param str authorization: JWT Bearer Token (required) :param AudiencePutRequest request: Mandatory. The request to update the Audience metadata. (required) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(object, status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['audience_id', 'authorization', 'request'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError( "Got an unexpected keyword argument '%s'" " to method update_audience_metadata" % key ) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'audience_id' is set if ('audience_id' not in local_var_params or local_var_params['audience_id'] is None): raise ApiValueError("Missing the required parameter `audience_id` when calling `update_audience_metadata`") # noqa: E501 # verify the required parameter 'authorization' is set if ('authorization' not in local_var_params or local_var_params['authorization'] is None): raise ApiValueError("Missing the required parameter `authorization` when calling `update_audience_metadata`") # noqa: E501 # verify the required parameter 'request' is set if ('request' not in local_var_params or local_var_params['request'] is None): raise ApiValueError("Missing the required parameter `request` when calling `update_audience_metadata`") # noqa: E501 collection_formats = {} path_params = {} if 'audience_id' in local_var_params: path_params['audienceId'] = local_var_params['audience_id'] # noqa: E501 query_params = [] header_params = {} if 'authorization' in local_var_params: header_params['Authorization'] = local_var_params['authorization'] # noqa: E501 form_params = [] local_var_files = {} body_params = None if 'request' in local_var_params: body_params = local_var_params['request'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json', 'text/json', 'application/xml', 'text/xml', 'text/html']) # noqa: E501 # HTTP header `Content-Type` header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 ['application/json', 'text/json', 'application/xml', 'text/xml', 'application/x-www-form-urlencoded', 'text/html']) # noqa: E501 # Authentication setting auth_settings = ['Authorization'] # noqa: E501 return self.api_client.call_api( '/v1/audiences/{audienceId}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='object', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def request(self, method, url, query_params=None, headers=None, post_params=None, body=None, _preload_content=True, _request_timeout=None): """Makes the HTTP request using RESTClient.""" if method == "GET": return self.rest_client.GET(url, query_params=query_params, _preload_content=_preload_content, _request_timeout=_request_timeout, headers=headers) elif method == "HEAD": return self.rest_client.HEAD(url, query_params=query_params, _preload_content=_preload_content, _request_timeout=_request_timeout, headers=headers) elif method == "OPTIONS": return self.rest_client.OPTIONS(url, query_params=query_params, headers=headers, post_params=post_params, _preload_content=_preload_content, _request_timeout=_request_timeout, body=body) elif method == "POST": return self.rest_client.POST(url, query_params=query_params, headers=headers, post_params=post_params, _preload_content=_preload_content, _request_timeout=_request_timeout, body=body) elif method == "PUT": return self.rest_client.PUT(url, query_params=query_params, headers=headers, post_params=post_params, _preload_content=_preload_content, _request_timeout=_request_timeout, body=body) elif method == "PATCH": return self.rest_client.PATCH(url, query_params=query_params, headers=headers, post_params=post_params, _preload_content=_preload_content, _request_timeout=_request_timeout, body=body) elif method == "DELETE": return self.rest_client.DELETE(url, query_params=query_params, headers=headers, _preload_content=_preload_content, _request_timeout=_request_timeout, body=body) else: raise ApiValueError("http method must be `GET`, `HEAD`, `OPTIONS`," " `POST`, `PATCH`, `PUT` or `DELETE`.")
def get_stats_with_http_info(self, authorization, stats_query, **kwargs): # noqa: E501 """Generates a statistics report # noqa: E501 <b>ReportType</b>: The type of report to generate. Possible values: CampaignPerformance, FacebookDPA, TransactionID. <i>(mandatory)</i><br /><b>AdvertiserIds</b>: The list of advertiser ids, comma-separated. Advertisers not in your portfolio will be skipped. If not present, all the advertisers in the portfolio will be used. <i>(optional)</i><br /><b>StartDate, EndDate</b>: Start date (beginning of day) and end date (end of day) to be used for the report generation. Format to use: yyyy-MM-dd (e.g. 2017-10-30). <i>(mandatory)</i><br /><b>Dimensions</b>: The dimensions to be used in the report. Between one and three. Possible values: CampaignId, AdvertiserId, Category, Hour, Day, Week, Month, Year. <i>(mandatory)</i><br /><b>Metrics</b>: The metrics to be used in the report. For a list of possible values, please see <a href=\"https://support.criteo.com/s/article?article=Criteo-Marketing-API-Intro\">the full documentation</a>. <i>(mandatory)</i><br /><b>Format</b>: The file format of the generated report. Possible values: Csv, Excel, Xml, Json <i>(mandatory)</i><br /><b>Currency</b>: The currency to be used in the report. Three-letter capitals. For a list of possible values, please see <a href=\"https://support.criteo.com/s/article?article=Criteo-Marketing-API-Intro\">the full documentation</a>. If not set, the user's preference setting will be used. <i>(optional)</i><br /><b>Timezone</b>: Timezone to be used in the report. Possible values: GMT, PST, JST. If not set, the user's preference setting will be used. <i>(optional)</i><br /><b>IgnoreXDevice</b>: Ignore cross-device data. Also can explicitly set to null for TransactionID ReportType to get all data. Defaults to false. <i>(optional)</i><br /><h4>Functional cases</h4> Statistic export in a file might be corrupted through Swagger. It's recommended to access this file through a CURL request or other programmatic methods. <h4>Validation rules</h4> StartDate and EndDate are mandatory.<br /> StartDate should come before, or be equal to EndDate.<br /> The requested dimensions must be in a supported combination.<br /> At least one metric must be provided.<br /> All metrics must be supported.<br /> The selected advertisers must have at least one campaign.<br /> Seller dimension is not supported.<br /><h4>Response custom headers</h4> If you are asking for a CampaignPerformance report and sales metrics are late, response will have a custom header <b>latest-available-sales</b>, a datetime with format <b>yyyy-MM-dd HH:mm</b> using the requested timezone. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_stats_with_http_info(authorization, stats_query, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param str authorization: JWT Bearer Token (required) :param StatsQueryMessageEx stats_query: The report query details (required) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(str, status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['authorization', 'stats_query'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError( "Got an unexpected keyword argument '%s'" " to method get_stats" % key ) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'authorization' is set if ('authorization' not in local_var_params or local_var_params['authorization'] is None): raise ApiValueError("Missing the required parameter `authorization` when calling `get_stats`") # noqa: E501 # verify the required parameter 'stats_query' is set if ('stats_query' not in local_var_params or local_var_params['stats_query'] is None): raise ApiValueError("Missing the required parameter `stats_query` when calling `get_stats`") # noqa: E501 collection_formats = {} path_params = {} query_params = [] header_params = {} if 'authorization' in local_var_params: header_params['Authorization'] = local_var_params['authorization'] # noqa: E501 form_params = [] local_var_files = {} body_params = None if 'stats_query' in local_var_params: body_params = local_var_params['stats_query'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json', 'text/json', 'application/xml', 'text/xml', 'text/html']) # noqa: E501 # HTTP header `Content-Type` header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 ['application/json', 'text/json', 'application/xml', 'text/xml', 'application/x-www-form-urlencoded', 'text/html']) # noqa: E501 # Authentication setting auth_settings = ['Authorization'] # noqa: E501 return self.api_client.call_api( '/v1/statistics', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='str', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def get_campaign_report_with_http_info(self, authorization, report_query, **kwargs): # noqa: E501 """Generates a statistics report # noqa: E501 ###This Statistics endpoint is an upgrade of our previous Statistics endpoint, and includes new metrics and customization capabilities. It is currently in beta and subject to change. Reach out to your Criteo contact if you’re interesting in participating in the beta### **AdvertiserIds**:(mandatory) The list of advertiser ids, comma-separated. Advertisers not in your portfolio will be skipped. If no id is present, all the advertisers in the portfolio will be used.<br /> **StartDate, EndDate**: (mandatory) Start date (beginning of day) and end date (beginning of day) to be used for the report generation. Format to use: yyyy-mm-dd (e.g. 2017-10-30).<br /> **Dimensions**: (mandatory) The dimensions to be used in the report. Possible values: CampaignId, Campaign, AdvertiserId, Advertiser, CategoryId, Category, Hour, Day, Week, Month, Year.<br /> **Metrics**:(mandatory) The metrics to be used in the report. For a list of possible values, please see <a href=\"https://support.criteo.com/s/article?article=API-Statistics-Reference\">the full documentation</a>.<br /> **Format**: (mandatory)The file format of the generated report. Possible values: Csv, Excel, Xml, Json<br /> **Currency**: (optional) The currency to be used in the report. ISO 4217 code (three-letter capitals). For a list of supported values, please see <a href=\"https://support.criteo.com/s/article?article=Supported-currencies-API\">the full documentation</a>. If not set, the user's preference setting will be used.<br /> **Timezone**: (optional) Timezone to be used in the report. Possible format<br /> - TZ format (e.g. Europe/London) - UTC format (e.g. UTC+1:00) - Timezone abbreviation (e.g. PST) If not set, GMT is used.<br /> #### Functional cases #### Statistic export in a file might be corrupted through Swagger. It's recommended to access this file through a CURL request or other programmatic methods. #### Validation rules #### StartDate and EndDate are mandatory.<br /> StartDate should come before, or be equal to EndDate.<br /> The requested dimensions must be in a supported combination.<br /> At least one metric must be provided.<br /> All metrics must be supported.<br /> No duplicated metric in the list.<br /> The selected advertisers must have at least one campaign.<br /> # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_campaign_report_with_http_info(authorization, report_query, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param str authorization: JWT Bearer Token (required) :param CampaignReportQueryMessage report_query: (required) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(str, status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['authorization', 'report_query'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError( "Got an unexpected keyword argument '%s'" " to method get_campaign_report" % key ) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'authorization' is set if ('authorization' not in local_var_params or local_var_params['authorization'] is None): raise ApiValueError("Missing the required parameter `authorization` when calling `get_campaign_report`") # noqa: E501 # verify the required parameter 'report_query' is set if ('report_query' not in local_var_params or local_var_params['report_query'] is None): raise ApiValueError("Missing the required parameter `report_query` when calling `get_campaign_report`") # noqa: E501 collection_formats = {} path_params = {} query_params = [] header_params = {} if 'authorization' in local_var_params: header_params['Authorization'] = local_var_params['authorization'] # noqa: E501 form_params = [] local_var_files = {} body_params = None if 'report_query' in local_var_params: body_params = local_var_params['report_query'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json', 'text/json', 'application/xml', 'text/xml', 'text/html']) # noqa: E501 # HTTP header `Content-Type` header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 ['application/json', 'text/json', 'application/xml', 'text/xml', 'application/x-www-form-urlencoded', 'text/html']) # noqa: E501 # Authentication setting auth_settings = ['Authorization'] # noqa: E501 return self.api_client.call_api( '/v1/statistics/report', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='str', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def update_bids_with_http_info(self, authorization, bid_changes, **kwargs): # noqa: E501 """Update bids for campaigns and their categories # noqa: E501 If a campaign bid is updated, all (if any) category bids for this campaign will be updated with the new value if they are initially equal to the campaign bid. If the category bid is not wanted to be cascaded to the categories with the same bid value, new change bids must be added in the request for the categories where the value should be kept (with the initial value). # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_bids_with_http_info(authorization, bid_changes, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param str authorization: JWT Bearer Token (required) :param list[CampaignBidChangeRequest] bid_changes: Specifies the list of bid changes to be applied. (required) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(list[CampaignMessage], status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['authorization', 'bid_changes'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError("Got an unexpected keyword argument '%s'" " to method update_bids" % key) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'authorization' is set if ('authorization' not in local_var_params or local_var_params['authorization'] is None): raise ApiValueError( "Missing the required parameter `authorization` when calling `update_bids`" ) # noqa: E501 # verify the required parameter 'bid_changes' is set if ('bid_changes' not in local_var_params or local_var_params['bid_changes'] is None): raise ApiValueError( "Missing the required parameter `bid_changes` when calling `update_bids`" ) # noqa: E501 collection_formats = {} path_params = {} query_params = [] header_params = {} if 'authorization' in local_var_params: header_params['Authorization'] = local_var_params[ 'authorization'] # noqa: E501 form_params = [] local_var_files = {} body_params = None if 'bid_changes' in local_var_params: body_params = local_var_params['bid_changes'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept([ 'application/json', 'text/json', 'application/xml', 'text/xml', 'text/html' ]) # noqa: E501 # HTTP header `Content-Type` header_params[ 'Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 [ 'application/json', 'text/json', 'application/xml', 'text/xml', 'application/x-www-form-urlencoded', 'text/html' ]) # noqa: E501 # Authentication setting auth_settings = ['Authorization'] # noqa: E501 return self.api_client.call_api( '/v1/campaigns/bids', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='list[CampaignMessage]', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get( '_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def get_bids_with_http_info(self, authorization, **kwargs): # noqa: E501 """Gets a the bids for campaigns and their categories # noqa: E501 Get the campaigns' bids, as well as the bids of their categories # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_bids_with_http_info(authorization, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param str authorization: JWT Bearer Token (required) :param str campaign_ids: Optional. The ids of the campaigns we want to get the bids on. If not specified, advertiserIds will be used. :param str advertiser_ids: Optional. The ids of the advertisers' campaigns we want to get the bids on. If campaignIds not specified, and neither is advertiserIds, all the advertisers in the user's portfolio are used. :param str category_hash_codes: Optional. Filters only specified categories. By default no filtering is applied. :param str bid_type: Optional. Filters by bid type. By default no filtering is applied. :param str campaign_status: Optional. Filters by campaign status. By default no filtering is applied. :param bool pending_changes: Optional. Filters only pending changes or settled ones. By default no filtering is applied. :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(list[CampaignBidMessage], status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = [ 'authorization', 'campaign_ids', 'advertiser_ids', 'category_hash_codes', 'bid_type', 'campaign_status', 'pending_changes' ] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError("Got an unexpected keyword argument '%s'" " to method get_bids" % key) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'authorization' is set if ('authorization' not in local_var_params or local_var_params['authorization'] is None): raise ApiValueError( "Missing the required parameter `authorization` when calling `get_bids`" ) # noqa: E501 collection_formats = {} path_params = {} query_params = [] if 'campaign_ids' in local_var_params: query_params.append( ('campaignIds', local_var_params['campaign_ids'])) # noqa: E501 if 'advertiser_ids' in local_var_params: query_params.append( ('advertiserIds', local_var_params['advertiser_ids'])) # noqa: E501 if 'category_hash_codes' in local_var_params: query_params.append( ('categoryHashCodes', local_var_params['category_hash_codes'])) # noqa: E501 if 'bid_type' in local_var_params: query_params.append( ('bidType', local_var_params['bid_type'])) # noqa: E501 if 'campaign_status' in local_var_params: query_params.append( ('campaignStatus', local_var_params['campaign_status'])) # noqa: E501 if 'pending_changes' in local_var_params: query_params.append( ('pendingChanges', local_var_params['pending_changes'])) # noqa: E501 header_params = {} if 'authorization' in local_var_params: header_params['Authorization'] = local_var_params[ 'authorization'] # noqa: E501 form_params = [] local_var_files = {} body_params = None # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept([ 'application/json', 'text/json', 'application/xml', 'text/xml', 'text/html' ]) # noqa: E501 # Authentication setting auth_settings = ['Authorization'] # noqa: E501 return self.api_client.call_api( '/v1/campaigns/bids', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='list[CampaignBidMessage]', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get( '_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def get_category_with_http_info(self, campaign_id, category_hash_code, authorization, **kwargs): # noqa: E501 """Gets a specific category # noqa: E501 Get a specific category linked to the requested campaign. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_category_with_http_info(campaign_id, category_hash_code, authorization, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param int campaign_id: Mandatory. The id of the campaign the categories are linked to. (required) :param int category_hash_code: Mandatory. The id of the category to return. (required) :param str authorization: JWT Bearer Token (required) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(CategoryMessage, status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['campaign_id', 'category_hash_code', 'authorization'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError("Got an unexpected keyword argument '%s'" " to method get_category" % key) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'campaign_id' is set if ('campaign_id' not in local_var_params or local_var_params['campaign_id'] is None): raise ApiValueError( "Missing the required parameter `campaign_id` when calling `get_category`" ) # noqa: E501 # verify the required parameter 'category_hash_code' is set if ('category_hash_code' not in local_var_params or local_var_params['category_hash_code'] is None): raise ApiValueError( "Missing the required parameter `category_hash_code` when calling `get_category`" ) # noqa: E501 # verify the required parameter 'authorization' is set if ('authorization' not in local_var_params or local_var_params['authorization'] is None): raise ApiValueError( "Missing the required parameter `authorization` when calling `get_category`" ) # noqa: E501 collection_formats = {} path_params = {} if 'campaign_id' in local_var_params: path_params['campaignId'] = local_var_params[ 'campaign_id'] # noqa: E501 if 'category_hash_code' in local_var_params: path_params['categoryHashCode'] = local_var_params[ 'category_hash_code'] # noqa: E501 query_params = [] header_params = {} if 'authorization' in local_var_params: header_params['Authorization'] = local_var_params[ 'authorization'] # noqa: E501 form_params = [] local_var_files = {} body_params = None # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept([ 'application/json', 'text/json', 'application/xml', 'text/xml', 'text/html' ]) # noqa: E501 # Authentication setting auth_settings = ['Authorization'] # noqa: E501 return self.api_client.call_api( '/v1/campaigns/{campaignId}/categories/{categoryHashCode}', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='CategoryMessage', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get( '_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def campaigns_with_http_info(self, authorization, **kwargs): # noqa: E501 """Get stats by campaign. # noqa: E501 ## Dimensions Get performance statistics aggregated for _campaigns_. The campaign id appears in the output as the first column. Aggregation can be done by `hour`, `day`, `month`, or `year`. The aggregation interval size is controlled by `intervalSize`. The time interval appears in the output as the second column. ## Metrics The metrics reported by this endpoint are . | Metric Group | Description ---|--------------|------------ A | impressions | Number of times product is shown in a banner B | clicks | Number of clicks on product C | cost | Amount spent for clicks on products D | saleUnits | Number of products sold attributed to clicks E | revenue | Revenue generated by sales F | CR = Conversion Rate | salesUnits / clicks G | CPO = Cost Per Order | cost / salesUnits H | COS = Cost of Sale | cost / revenue I | ROAS = Return On Add Spend | revenue / cost The last six metrics can be computed in two ways depending on the policy to count only the sales that result from clicks on the same sellers product in a banner (same-seller) or not (any-seller). Reporting can be controlled by `clickAttributionPolicy`. The 9 (or 15) metric values appear in the output as the final 9 (or 15) columns. ## Filtering The results can be filtered by campaign, date or count. Filtering the results to events associated with a specific campaign is done by setting the `campaignId` filter parameter to the desired value. Filtering the results to events that happened in a time interval is done by setting the `startDate` and `endDate` filter parameters using the `yyyy-MM-DD` format. The start date includes all events timestamped since the beginning of that day while the end date includes events until the end of day. The maximum duration of the date range is 1 year. If the aggregation interval is `hour`, then the maximum duration of the date range is 31 days. Note that month and year aggregate values may contain partial data for the interval if filtering by date. Filtering the results to a maximum number of data rows is done by setting the `count` filter parameter. When combined with startDate this can be used to perform simple pagination. ## Response Format The representation format can be specified by MIME values in the Accept header. For now the only supported values for the accept header is `application/json` and `text/csv`. ```json { \"columns\": [ \"campaignId\", \"month\", \"impressions\", \"clicks\", \"cost\", \"saleUnits\", \"revenue\", \"cr\", \"cpo\", \"cos\", \"roas\" ], \"data\": [ [168423, \"2019-05-01\", 3969032, 13410, 1111.295, 985, 190758099, 0.073, 1.128, 0.000, 171653.880 ], [168423, \"2019-06-01\", 8479603, 25619, 2190.705, 740, 152783656, 0.028, 2.960, 0.000, 69741.775 ] ], \"rows\": 2 } ``` The JSON result is an object with three fields (`columns`, `data`, and `rows`). The “columns” array acts as the header for the data rows. The categorical dimension column comes first and consists of the campaign id. The interval column comes next and defines the aggregation period. The interval size is determined by the `intervalSize` parameter. This is followed by either nine or fifteen metrics columns. The first three metrics (impressions, clicks, and cost) always appear. The remaining depend on the `clickAttributionPolicy` parameter. The “data” array contains data rows whose values match the entries in the “columns” array. Id dimensions are numbers while name and date dimensions are strings. The metrics are JSON objects whose type is number. Some of these are natural numbers (e.g. clicks and impressions) whereas others are decimal values. A divide by zero yields null. The currency is assumed to be the local currency established by the advertiser. The “row” value is a count of the number of rows in the data array, and can be used to check the integrity of the data. Further information on the campaign or seller (e.g. the seller name) can be obtained from the existing V1 or V2 endpoints using the campaign and/or seller ID values. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.campaigns_with_http_info(authorization, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param str authorization: JWT Bearer Token (required) :param str interval_size: Specify the aggregation interval for events used to compute stats (default is \"day\") :param str click_attribution_policy: Specify the click attribution policy for salesUnits, revenue, CR, CPO, COS, and ROAS :param datetime start_date: Filter out all events that occur before date (default is the value of `endDate`) :param datetime end_date: Filter out all events that occur after date (default is today’s date) :param str campaign_id: Show only metrics for this campaign (default all campaigns) :param int count: Return up to the first count rows of data (default is all rows) :param int advertiser_id: Show only metrics for this advertiser. :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(str, status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['authorization', 'interval_size', 'click_attribution_policy', 'start_date', 'end_date', 'campaign_id', 'count', 'advertiser_id'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError( "Got an unexpected keyword argument '%s'" " to method campaigns" % key ) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'authorization' is set if ('authorization' not in local_var_params or local_var_params['authorization'] is None): raise ApiValueError("Missing the required parameter `authorization` when calling `campaigns`") # noqa: E501 collection_formats = {} path_params = {} query_params = [] if 'interval_size' in local_var_params: query_params.append(('intervalSize', local_var_params['interval_size'])) # noqa: E501 if 'click_attribution_policy' in local_var_params: query_params.append(('clickAttributionPolicy', local_var_params['click_attribution_policy'])) # noqa: E501 if 'start_date' in local_var_params: query_params.append(('startDate', local_var_params['start_date'])) # noqa: E501 if 'end_date' in local_var_params: query_params.append(('endDate', local_var_params['end_date'])) # noqa: E501 if 'campaign_id' in local_var_params: query_params.append(('campaignId', local_var_params['campaign_id'])) # noqa: E501 if 'count' in local_var_params: query_params.append(('count', local_var_params['count'])) # noqa: E501 if 'advertiser_id' in local_var_params: query_params.append(('advertiserId', local_var_params['advertiser_id'])) # noqa: E501 header_params = {} if 'authorization' in local_var_params: header_params['Authorization'] = local_var_params['authorization'] # noqa: E501 form_params = [] local_var_files = {} body_params = None # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json', 'text/json', 'application/xml', 'text/xml', 'text/html']) # noqa: E501 # Authentication setting auth_settings = ['Authorization'] # noqa: E501 return self.api_client.call_api( '/v2/crp/stats/campaigns', 'GET', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='str', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def update_categories_with_http_info(self, authorization, categories_per_catalog, **kwargs): # noqa: E501 """Enables/disables categories # noqa: E501 Update categories for multiple catalogs.<br /> Please note that all validations need to pass before applying the requested changes; the subsequent validation error messages will be returned in the response.<br /> Please note that bidding will still happen for disabled categories, but using the Camapign's bid. If the call is successful, full details about the changed categories will be returned. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_categories_with_http_info(authorization, categories_per_catalog, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param str authorization: JWT Bearer Token (required) :param list[CategoryUpdatesPerCatalog] categories_per_catalog: The list of categories to be enabled/disabled, grouped by catalog. (required) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(list[CategoryUpdatesPerCatalog], status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['authorization', 'categories_per_catalog'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError("Got an unexpected keyword argument '%s'" " to method update_categories" % key) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'authorization' is set if ('authorization' not in local_var_params or local_var_params['authorization'] is None): raise ApiValueError( "Missing the required parameter `authorization` when calling `update_categories`" ) # noqa: E501 # verify the required parameter 'categories_per_catalog' is set if ('categories_per_catalog' not in local_var_params or local_var_params['categories_per_catalog'] is None): raise ApiValueError( "Missing the required parameter `categories_per_catalog` when calling `update_categories`" ) # noqa: E501 collection_formats = {} path_params = {} query_params = [] header_params = {} if 'authorization' in local_var_params: header_params['Authorization'] = local_var_params[ 'authorization'] # noqa: E501 form_params = [] local_var_files = {} body_params = None if 'categories_per_catalog' in local_var_params: body_params = local_var_params['categories_per_catalog'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept([ 'application/json', 'text/json', 'application/xml', 'text/xml', 'text/html' ]) # noqa: E501 # HTTP header `Content-Type` header_params[ 'Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 [ 'application/json', 'text/json', 'application/xml', 'text/xml', 'application/x-www-form-urlencoded', 'text/html' ]) # noqa: E501 # Authentication setting auth_settings = ['Authorization'] # noqa: E501 return self.api_client.call_api( '/v1/categories', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='list[CategoryUpdatesPerCatalog]', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get( '_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)