-
Notifications
You must be signed in to change notification settings - Fork 164
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
325 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
153 changes: 153 additions & 0 deletions
153
bingads/v12/bulk/entities/ad_extensions/bulk_action_ad_extensions.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
from bingads.v12.internal.bulk.mappings import _SimpleBulkMapping | ||
from bingads.v12.internal.bulk.string_table import _StringTable | ||
from bingads.service_client import _CAMPAIGN_OBJECT_FACTORY_V12 | ||
|
||
from .common import _BulkAdExtensionBase | ||
from .common import _BulkAdGroupAdExtensionAssociation | ||
from .common import _BulkCampaignAdExtensionAssociation | ||
from .common import _BulkAccountAdExtensionAssociation | ||
|
||
from bingads.v12.internal.extensions import * | ||
|
||
|
||
_ActionAdExtension = type(_CAMPAIGN_OBJECT_FACTORY_V12.create('ActionAdExtension')) | ||
|
||
|
||
class BulkActionAdExtension(_BulkAdExtensionBase): | ||
""" Represents a action ad extension. | ||
This class exposes the :attr:`action_ad_extension` property that can be read and written | ||
as fields of the Action Ad Extension record in a bulk file. | ||
For more information, see Action Ad Extension at https://go.microsoft.com/fwlink/?linkid=846127. | ||
*See also:* | ||
* :class:`.BulkServiceManager` | ||
* :class:`.BulkOperation` | ||
* :class:`.BulkFileReader` | ||
* :class:`.BulkFileWriter` | ||
""" | ||
|
||
def __init__(self, account_id=None, ad_extension=None): | ||
if ad_extension and not isinstance(ad_extension, _ActionAdExtension): | ||
raise ValueError('The type of ad_extension is: {0}, should be: {1}'.format( | ||
type(ad_extension), | ||
'ActionAdExtension' | ||
)) | ||
super(BulkActionAdExtension, self).__init__( | ||
account_id=account_id, | ||
ad_extension=ad_extension | ||
) | ||
|
||
@property | ||
def action_ad_extension(self): | ||
""" The action ad extension. | ||
see Action Ad Extension at https://go.microsoft.com/fwlink/?linkid=846127. | ||
""" | ||
|
||
return self._ad_extension | ||
|
||
@action_ad_extension.setter | ||
def action_ad_extension(self, value): | ||
self._ad_extension = value | ||
|
||
_MAPPINGS = [ | ||
_SimpleBulkMapping( | ||
header=_StringTable.ActionType, | ||
field_to_csv=lambda c: bulk_str(c.action_ad_extension.ActionType), | ||
csv_to_field=lambda c, v: setattr(c.action_ad_extension, 'ActionType', v) | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.FinalUrl, | ||
field_to_csv=lambda c: field_to_csv_Urls(c.action_ad_extension.FinalUrls), | ||
csv_to_field=lambda c, v: csv_to_field_Urls(c.action_ad_extension.FinalUrls, v) | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.FinalMobileUrl, | ||
field_to_csv=lambda c: field_to_csv_Urls(c.action_ad_extension.FinalMobileUrls), | ||
csv_to_field=lambda c, v: csv_to_field_Urls(c.action_ad_extension.FinalMobileUrls, v) | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.TrackingTemplate, | ||
field_to_csv=lambda c: bulk_optional_str(c.action_ad_extension.TrackingUrlTemplate), | ||
csv_to_field=lambda c, v: setattr(c.action_ad_extension, 'TrackingUrlTemplate', v if v else '') | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.Language, | ||
field_to_csv=lambda c: bulk_optional_str(c.action_ad_extension.Language), | ||
csv_to_field=lambda c, v: setattr(c.action_ad_extension, 'Language', v if v else '') | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.CustomParameter, | ||
field_to_csv=lambda c: field_to_csv_UrlCustomParameters(c.action_ad_extension), | ||
csv_to_field=lambda c, v: csv_to_field_UrlCustomParameters(c.action_ad_extension, v) | ||
) | ||
] | ||
|
||
def process_mappings_from_row_values(self, row_values): | ||
self.action_ad_extension = _CAMPAIGN_OBJECT_FACTORY_V12.create('ActionAdExtension') | ||
self.action_ad_extension.Type = 'ActionAdExtension' | ||
super(BulkActionAdExtension, self).process_mappings_from_row_values(row_values) | ||
row_values.convert_to_entity(self, BulkActionAdExtension._MAPPINGS) | ||
|
||
def process_mappings_to_row_values(self, row_values, exclude_readonly_data): | ||
self._validate_property_not_null(self.action_ad_extension, 'action_ad_extension') | ||
super(BulkActionAdExtension, self).process_mappings_to_row_values(row_values, exclude_readonly_data) | ||
self.convert_to_values(row_values, BulkActionAdExtension._MAPPINGS) | ||
|
||
|
||
class BulkAccountActionAdExtension(_BulkAccountAdExtensionAssociation): | ||
""" Represents an account level action ad extension. | ||
This class exposes properties that can be read and written | ||
as fields of the Account Action Ad Extension record in a bulk file. | ||
For more information, see Account Action Ad Extension at https://go.microsoft.com/fwlink/?linkid=846127. | ||
*See also:* | ||
* :class:`.BulkServiceManager` | ||
* :class:`.BulkOperation` | ||
* :class:`.BulkFileReader` | ||
* :class:`.BulkFileWriter` | ||
""" | ||
|
||
pass | ||
|
||
class BulkCampaignActionAdExtension(_BulkCampaignAdExtensionAssociation): | ||
""" Represents a campaign level action ad extension. | ||
This class exposes properties that can be read and written | ||
as fields of the Campaign Action Ad Extension record in a bulk file. | ||
For more information, see Campaign Action Ad Extension at https://go.microsoft.com/fwlink/?linkid=846127. | ||
*See also:* | ||
* :class:`.BulkServiceManager` | ||
* :class:`.BulkOperation` | ||
* :class:`.BulkFileReader` | ||
* :class:`.BulkFileWriter` | ||
""" | ||
|
||
pass | ||
|
||
class BulkAdGroupActionAdExtension(_BulkAdGroupAdExtensionAssociation): | ||
""" Represents an ad group level Action ad extension. | ||
This class exposes properties that can be read and written | ||
as fields of the Ad Group Action Ad Extension record in a bulk file. | ||
For more information, see Ad Group Action Ad Extension at https://go.microsoft.com/fwlink/?linkid=846127. | ||
*See also:* | ||
* :class:`.BulkServiceManager` | ||
* :class:`.BulkOperation` | ||
* :class:`.BulkFileReader` | ||
* :class:`.BulkFileWriter` | ||
""" | ||
|
||
pass |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
from bingads.v12.bulk.entities import QualityScoreData, PerformanceData | ||
from bingads.service_client import _CAMPAIGN_OBJECT_FACTORY_V12 | ||
|
||
from bingads.v12.internal.bulk.string_table import _StringTable | ||
from bingads.v12.internal.bulk.entities.single_record_bulk_entity import _SingleRecordBulkEntity | ||
from bingads.v12.internal.bulk.mappings import _SimpleBulkMapping, _ComplexBulkMapping | ||
from bingads.v12.internal.extensions import * | ||
|
||
|
||
class BulkExperiment(_SingleRecordBulkEntity): | ||
""" Represents an experiment. | ||
This class exposes the property :attr:`experiment` that can be read and written as fields of the Experiment record | ||
in a bulk file. | ||
For more information, see Experiment at https://go.microsoft.com/fwlink/?linkid=846127. | ||
*See also:* | ||
* :class:`.BulkServiceManager` | ||
* :class:`.BulkOperation` | ||
* :class:`.BulkFileReader` | ||
* :class:`.BulkFileWriter` | ||
""" | ||
|
||
def __init__(self, experiment=None): | ||
super(BulkExperiment, self).__init__() | ||
self._experiment = experiment | ||
|
||
@property | ||
def experiment(self): | ||
""" The experiment. | ||
""" | ||
return self._experiment | ||
|
||
@experiment.setter | ||
def experiment(self, experiment): | ||
self._experiment = experiment | ||
|
||
_MAPPINGS = [ | ||
_SimpleBulkMapping( | ||
header=_StringTable.Id, | ||
field_to_csv=lambda c: bulk_str(c.experiment.Id), | ||
csv_to_field=lambda c, v: setattr(c.experiment, 'Id', int(v) if v else None) | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.Status, | ||
field_to_csv=lambda c: bulk_optional_str(c.experiment.ExperimentStatus), | ||
csv_to_field=lambda c, v: setattr(c.experiment, 'ExperimentStatus', v) | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.Name, | ||
field_to_csv=lambda c: c.experiment.Name, | ||
csv_to_field=lambda c, v: setattr(c.experiment, 'Name', v) | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.StartDate, | ||
field_to_csv=lambda c: bulk_date_str(c.experiment.StartDate), | ||
csv_to_field=lambda c, v: setattr(c.experiment, 'StartDate', parse_date(v)) | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.EndDate, | ||
field_to_csv=lambda c: bulk_date_str(c.experiment.EndDate), | ||
csv_to_field=lambda c, v: setattr(c.experiment, 'EndDate', parse_date(v)) | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.TrafficSplitPercent, | ||
field_to_csv=lambda c: bulk_str(c.experiment.TrafficSplitPercent), | ||
csv_to_field=lambda c, v: setattr(c.experiment, 'TrafficSplitPercent', int(v) if v else None) | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.BaseCampaignId, | ||
field_to_csv=lambda c: bulk_str(c.experiment.BaseCampaignId), | ||
csv_to_field=lambda c, v: setattr(c.experiment, 'BaseCampaignId', int(v) if v else None) | ||
), | ||
_SimpleBulkMapping( | ||
header=_StringTable.ExperimentCampaignId, | ||
field_to_csv=lambda c: bulk_str(c.experiment.ExperimentCampaignId), | ||
csv_to_field=lambda c, v: setattr(c.experiment, 'ExperimentCampaignId', int(v) if v else None) | ||
), | ||
] | ||
|
||
def process_mappings_from_row_values(self, row_values): | ||
self.experiment = _CAMPAIGN_OBJECT_FACTORY_V12.create('Experiment') | ||
row_values.convert_to_entity(self, BulkExperiment._MAPPINGS) | ||
|
||
def process_mappings_to_row_values(self, row_values, exclude_readonly_data): | ||
self._validate_property_not_null(self._experiment, 'Experiment') | ||
self.convert_to_values(row_values, BulkExperiment._MAPPINGS) | ||
|
||
def read_additional_data(self, stream_reader): | ||
super(BulkExperiment, self).read_additional_data(stream_reader) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.