示例#1
0
    def get_creatives(self,
                      order=DFP_QUERY_DEFAULTS['order'],
                      limit=None,
                      offset=DFP_QUERY_DEFAULTS['offset'],
                      **filter_kwargs):
        """
        Get creatives 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.LineItem}
        """

        # Fetch the SUDS object and convert to a proper dictionary
        dfp_creatives = self.dfp_client.get_creatives(order=order,
                                                      limit=limit,
                                                      offset=offset,
                                                      **filter_kwargs)
        results = self._convert_response_to_dict(dfp_creatives)

        creatives = []
        for creative in results:
            creatives.append(transform_creative_from_dfp(creative))
        return creatives
示例#2
0
    def get_creatives(self,
                      order=DFP_QUERY_DEFAULTS['order'],
                      limit=None,
                      offset=DFP_QUERY_DEFAULTS['offset'],
                      **filter_kwargs):
        """
        Get creatives 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.LineItem}
        """

        # Fetch the SUDS object and convert to a proper dictionary
        dfp_creatives = self.dfp_client.get_creatives(
            order=order,
            limit=limit,
            offset=offset,
            **filter_kwargs
        )
        results = self._convert_response_to_dict(dfp_creatives)

        creatives = []
        for creative in results:
            creatives.append(
                transform_creative_from_dfp(creative)
            )
        return creatives
    def test_creative_utils(self):
        creative = Creative(
            advertiser_id="ad_id",
            id="creative_id",
            name="creative_name",
            size={"height": "250", "isAspectRatio": False, "width": "300"},
            preview_url="image.com",
            last_modified=datetime(2015, 3, 3, 15, 57, tzinfo=timezone("America/New_York")),
        )

        dfp_creative = {
            "id": "creative_id",
            "advertiserId": "ad_id",
            "name": "creative_name",
            "previewUrl": "image.com",
            "size": {"height": "250", "isAspectRatio": False, "width": "300"},
            "lastModifiedDateTime": {
                "date": {"day": 3, "month": 3, "year": 2015},
                "hour": 15,
                "minute": 57,
                "second": 0,
                "timeZoneID": "America/New_York",
            },
        }

        # Check transform_creative_to_dfp
        self.assertDictEqual(dfp_creative, transform_creative_to_dfp(creative))

        # Check transform_creative_from_dfp
        self.assertEqual(creative, transform_creative_from_dfp(dfp_creative))

        # Check inversion of dfp creative
        self.assertDictEqual(dfp_creative, transform_creative_to_dfp(transform_creative_from_dfp(dfp_creative)))

        # Check inversion of native creative
        self.assertEqual(creative, transform_creative_from_dfp(transform_creative_to_dfp(creative)))
示例#4
0
    def get_creative(self, creative_id):
        """
        Return a creative object given an id

        @param creative_id: str, id of the campaign to return
        @return: parselmouth.delivery.Creative
        """
        dfp_creative = self.dfp_client.get_creative(creative_id)
        creatives = self._convert_response_to_dict(dfp_creative)

        if len(creatives) == 0:
            raise ParselmouthException(
                "No results for creative with id: {0}".format(creative_id))
        elif len(creatives) > 1:
            raise ParselmouthException(
                "More than one result for creative with id: {0}".format(
                    creative_id))

        return transform_creative_from_dfp(creatives[0])
示例#5
0
    def get_creative(self, creative_id):
        """
        Return a creative object given an id

        @param creative_id: str, id of the campaign to return
        @return: parselmouth.delivery.Creative
        """
        dfp_creative = self.dfp_client.get_creative(creative_id)
        creatives = self._convert_response_to_dict(dfp_creative)

        if len(creatives) == 0:
            raise ParselmouthException(
                "No results for creative with id: {0}".format(creative_id)
            )
        elif len(creatives) > 1:
            raise ParselmouthException(
                "More than one result for creative with id: {0}".format(
                    creative_id
                )
            )

        return transform_creative_from_dfp(creatives[0])
    def test_creative_utils(self):
        creative = Creative(
            advertiser_id='ad_id',
            id='creative_id',
            name='creative_name',
            size={
                'height': '250',
                'isAspectRatio': False,
                'width': '300',
            },
            preview_url='image.com',
            last_modified=datetime(2015,
                                   3,
                                   3,
                                   15,
                                   57,
                                   tzinfo=timezone('America/New_York')),
        )

        dfp_creative = {
            'id': 'creative_id',
            'advertiserId': 'ad_id',
            'name': 'creative_name',
            'previewUrl': 'image.com',
            'size': {
                'height': '250',
                'isAspectRatio': False,
                'width': '300',
            },
            'lastModifiedDateTime': {
                'date': {
                    'day': 3,
                    'month': 3,
                    'year': 2015,
                },
                'hour': 15,
                'minute': 57,
                'second': 0,
                'timeZoneID': 'America/New_York',
            },
        }

        # Check transform_creative_to_dfp
        self.assertDictEqual(
            dfp_creative,
            transform_creative_to_dfp(creative),
        )

        # Check transform_creative_from_dfp
        self.assertEqual(
            creative,
            transform_creative_from_dfp(dfp_creative),
        )

        # Check inversion of dfp creative
        self.assertDictEqual(
            dfp_creative,
            transform_creative_to_dfp(
                transform_creative_from_dfp(dfp_creative)),
        )

        # Check inversion of native creative
        self.assertEqual(
            creative,
            transform_creative_from_dfp(transform_creative_to_dfp(creative)),
        )