def get_campaigns(self, order=DFP_QUERY_DEFAULTS['order'], limit=None, offset=DFP_QUERY_DEFAULTS['offset'], **filter_kwargs): """ Get campaigns on optional filters @param order: str, PQL key to sort on (default=ID) @param limit: int, number of PQL results to return @param offset: int, page in a stream of PQL results to return @param filter_kwargs: dict, keyword arguments on which to filter PQL results @return: L{parselmouth.delivery.Campaign} Example: * Get an order by id: `get_campaigns(id=ORDER_ID)` * Get orders by advertiser id: `get_campaigns(advertiserId=ADVERTISER_ID, limit=10)` """ # Fetch the SUDS object and convert to a proper dictionary dfp_orders = self.dfp_client.get_orders(order=order, limit=limit, offset=offset, **filter_kwargs) results = self._convert_response_to_dict(dfp_orders) campaigns = [] for order in results: campaigns.append(transform_campaign_from_dfp(order)) return campaigns
def get_campaigns(self, order=DFP_QUERY_DEFAULTS['order'], limit=None, offset=DFP_QUERY_DEFAULTS['offset'], **filter_kwargs): """ Get campaigns on optional filters @param order: str, PQL key to sort on (default=ID) @param limit: int, number of PQL results to return @param offset: int, page in a stream of PQL results to return @param filter_kwargs: dict, keyword arguments on which to filter PQL results @return: L{parselmouth.delivery.Campaign} Example: * Get an order by id: `get_campaigns(id=ORDER_ID)` * Get orders by advertiser id: `get_campaigns(advertiserId=ADVERTISER_ID, limit=10)` """ # Fetch the SUDS object and convert to a proper dictionary dfp_orders = self.dfp_client.get_orders( order=order, limit=limit, offset=offset, **filter_kwargs ) results = self._convert_response_to_dict(dfp_orders) campaigns = [] for order in results: campaigns.append( transform_campaign_from_dfp(order) ) return campaigns
def get_campaign(self, campaign_id): """ Return a campaign object given an id @param campaign_id: str, id of the campaign to return @return: parselmouth.delivery.Campaign """ # Fetch the SUDS object and convert to a proper dictionary dfp_order = self.dfp_client.get_order(campaign_id) results = self._convert_response_to_dict(dfp_order) if len(results) == 0: raise ParselmouthException( "No results for campaign with id: {0}".format(campaign_id)) elif len(results) > 1: raise ParselmouthException( "More than one result for campaign with id: {0}".format( campaign_id)) return transform_campaign_from_dfp(results[0])
def get_campaign(self, campaign_id): """ Return a campaign object given an id @param campaign_id: str, id of the campaign to return @return: parselmouth.delivery.Campaign """ # Fetch the SUDS object and convert to a proper dictionary dfp_order = self.dfp_client.get_order(campaign_id) results = self._convert_response_to_dict(dfp_order) if len(results) == 0: raise ParselmouthException( "No results for campaign with id: {0}".format(campaign_id) ) elif len(results) > 1: raise ParselmouthException( "More than one result for campaign with id: {0}".format( campaign_id ) ) return transform_campaign_from_dfp(results[0])
def test_campaign_utils(self): campaign = Campaign( advertiser_id="ad_id", creator_id="cr_id", currency_code="USD", end=datetime(2015, 8, 14, 23, 59, tzinfo=timezone("America/New_York")), external_campaign_id="0", id="campaign_id", name="campaign_name", start=datetime(2015, 3, 3, 15, 57, tzinfo=timezone("America/New_York")), status="DRAFT", stats=Stats(impressions=0, clicks=0), last_modified=datetime(2015, 3, 3, 15, 57, tzinfo=timezone("America/New_York")), total_budget=Cost(budget_micro_amount=10000.0, budget_currency_code="USD"), ) dfp_campaign = { "advertiserId": "ad_id", "creatorId": "cr_id", "currencyCode": "USD", "endDateTime": { "date": {"day": 14, "month": 8, "year": 2015}, "hour": 23, "minute": 59, "second": 0, "timeZoneID": "America/New_York", }, "id": "campaign_id", "externalOrderId": "0", "lastModifiedByApp": None, "lastModifiedDateTime": { "date": {"day": 3, "month": 3, "year": 2015}, "hour": 15, "minute": 57, "second": 0, "timeZoneID": "America/New_York", }, "name": "campaign_name", "startDateTime": { "date": {"day": 3, "month": 3, "year": 2015}, "hour": 15, "minute": 57, "second": 0, "timeZoneID": "America/New_York", }, "status": "DRAFT", "totalBudget": {"currencyCode": "USD", "microAmount": 10000.0}, "totalClicksDelivered": 0, "totalImpressionsDelivered": 0, } # Check transform_campaign_to_dfp self.assertDictEqual(dfp_campaign, transform_campaign_to_dfp(campaign)) # Check transform_campaign_from_dfp self.assertEqual(campaign, transform_campaign_from_dfp(dfp_campaign)) # Check inversion of dfp campaign self.assertDictEqual(dfp_campaign, transform_campaign_to_dfp(transform_campaign_from_dfp(dfp_campaign))) # Check inversion of native campaign self.assertEqual(campaign, transform_campaign_from_dfp(transform_campaign_to_dfp(campaign)))
def test_campaign_utils(self): campaign = Campaign( advertiser_id='ad_id', creator_id='cr_id', currency_code='USD', end=datetime(2015, 8, 14, 23, 59, tzinfo=timezone('America/New_York')), external_campaign_id='0', id='campaign_id', name='campaign_name', start=datetime(2015, 3, 3, 15, 57, tzinfo=timezone('America/New_York')), status='DRAFT', stats=Stats( impressions=0, clicks=0, ), last_modified=datetime(2015, 3, 3, 15, 57, tzinfo=timezone('America/New_York')), total_budget=Cost( budget_micro_amount=10000.0, budget_currency_code='USD', ), ) dfp_campaign = { 'advertiserId': 'ad_id', 'creatorId': 'cr_id', 'currencyCode': 'USD', 'endDateTime': { 'date': { 'day': 14, 'month': 8, 'year': 2015, }, 'hour': 23, 'minute': 59, 'second': 0, 'timeZoneID': 'America/New_York', }, 'id': 'campaign_id', 'externalOrderId': '0', 'lastModifiedByApp': None, 'lastModifiedDateTime': { 'date': { 'day': 3, 'month': 3, 'year': 2015, }, 'hour': 15, 'minute': 57, 'second': 0, 'timeZoneID': 'America/New_York', }, 'name': 'campaign_name', 'startDateTime': { 'date': { 'day': 3, 'month': 3, 'year': 2015, }, 'hour': 15, 'minute': 57, 'second': 0, 'timeZoneID': 'America/New_York', }, 'status': 'DRAFT', 'totalBudget': { 'currencyCode': 'USD', 'microAmount': 10000.0, }, 'totalClicksDelivered': 0, 'totalImpressionsDelivered': 0 } # Check transform_campaign_to_dfp self.assertDictEqual( dfp_campaign, transform_campaign_to_dfp(campaign), ) # Check transform_campaign_from_dfp self.assertEqual( campaign, transform_campaign_from_dfp(dfp_campaign), ) # Check inversion of dfp campaign self.assertDictEqual( dfp_campaign, transform_campaign_to_dfp( transform_campaign_from_dfp(dfp_campaign)), ) # Check inversion of native campaign self.assertEqual( campaign, transform_campaign_from_dfp(transform_campaign_to_dfp(campaign)), )