adpay.stats package¶
This package provides the functionality behind all adpay calculations.
The responsibility break down is:
- adpay.stats.cache provides a cache for speeding up the calculations (legacy mode only)
- adpay.stats.consts is the module hosting configuration
- adpay.stats.legacy provides the legacy, user-value algorithm for calculating payments
- adpay.stats.main provides the default algorithm for calculating payments
- adpay.stats.tasks provides functionality for periodical calculations
- adpay.stats.utils provides helper functionality for calculating payments
adpay.stats.cache module¶
adpay.stats.tasks module¶
-
adpay.stats.tasks.adpay_task(*args, **kwargs)[source]¶ Recalculate payments and schedule them again in interval_seconds. :param interval_seconds: time after which the task will rerun.
-
adpay.stats.tasks.calculate_events_payments(*args, **kwargs)[source]¶ Routing function for different algorithms. Controlled by adpay.stats.consts constant values.
Parameters: - campaign_doc –
- timestamp –
- payment_percentage_cutoff –
Returns:
adpay.stats.utils module¶
-
adpay.stats.utils.FILTER_SEPARATOR= '--'¶ Filter separator, used in range filters (see protocol or api documentation).
-
adpay.stats.utils.create_user_budget(*args, **kwargs)[source]¶ Calculate individual user budgets.
User budget dictionary default values for each event type are:
{ ‘default_value’: 0.0, # Default value for this event type ‘event_value’: 0.0, # Calculated event value (used later on) ‘num’: 0, # Number of events of this time in the time period ‘share’: 0.0 # Share of this user for this event type in the time period }Parameters: - campaign_doc – Campaign document
- timestamp – Timestamp (last hour)
- uid –
Returns: User budget dictionary
-
adpay.stats.utils.delete_campaign(*args, **kwargs)[source]¶ Delete campaign document and all campaign banners
Parameters: campaign_id – Returns:
-
adpay.stats.utils.filter_event(event_doc, campaign_doc, banner_doc)[source]¶ Filter out events that don’t pass our validation conditions. See adpay,stats.consts module for more details.
Parameters: - event_doc – Event document under consideration.
- campaign_doc – Campaign document for this event.
- banner_doc – Banner document for this event.
Returns: Reason status for rejection (0 - not rejected). See adpay.stats.consts.
-
adpay.stats.utils.get_default_event_payment(event_doc, max_cpc, max_cpm)[source]¶ This is maximum payment. Defined in campaign or, in case of custom events (eg. conversions) in event itself.
Parameters: - event_doc – Event document
- max_cpc – Cost per click
- max_cpm – Cost per view/impression (CPM)
Returns: Payment per event
-
adpay.stats.utils.update_events_payments(*args, **kwargs)[source]¶ Update or create event payments in the database by dividing user budget among events.
Parameters: - campaign_doc – Campaign document
- timestamp – Timestamp for the time period of calculation
- uid – User identifier
- user_budget – User budget
Returns:
-
adpay.stats.utils.validate_bounds(bounds, keyword_values)[source]¶ Validate if keyword value is correct. Value is between bounds (bounds has two elements) or Value is equal to bounds (default, bounds is assumed to have one element)
Parameters: - bounds – Iterable (1 or 2 elements)
- keyword_values – Keyword value being tested.
Returns: True or False
-
adpay.stats.utils.validate_exclude_keywords(filters_dict, keywords)[source]¶ Validate campaign exclude filters.
Parameters: - filters_dict – Required and excluded keywords
- keywords – Keywords being tested.
Returns: True or False