我需要一些谷歌广告管理器API的帮助。我正在尝试删除包含以下内容的lineitem
:
from googleads import ad_manager
client = ad_manager.AdManagerClient.LoadFromStorage()
def test(id):
line_item_service = client.GetService('LineItemService',version='v202002')
line_item_name = str(id)
statement = (ad_manager.StatementBuilder(version='v202002').Where('OrderId = :OrderId').WithBindVariable('OrderId',app.config['AD_MANAGER']['ORDER_ID']))
response = line_item_service.performLineItemAction(line_item_service.DeleteLineItems(),statement.ToStatement())
我的问题出在DeleteLineItems()
上,因为我不确定如何正确调用它。我找不到明确的用法示例,因此我在上面进行了尝试。下面是我能找到的文档。我当前尝试的错误是:
{success: false, error: "<class 'googleads.errors.GoogleAdsValueError'>", message: "Service DeleteLineItems not found"}
https://developers.google.com/ad-manager/api/reference/v202011/LineItemService.DeleteLineItems https://developers.google.com/ad-manager/api/reference/v202011/LineItemService#performLineItemAction
发布于 2020-11-18 21:34:22
所以我终于找到了答案。
performLineItemAction
接受2个参数。第一个是LineItemAction
,第二个是Statement
。我发现文档有点混乱,因为我认为LineItemAction
是LineItem
对象的一个方法。事实证明,第一个参数实际上是一个字典。
line_item_service.performLineItemAction({'xsi_type':'ArchiveLineItems'},statement.ToStatement())
顺便说一句,行项目一旦交付,我们就不能删除它。我们可以暂停它或将其存档。在这种情况下,我选择将其存档。您可以在此处找到不同类型的行项目操作。
https://developers.google.com/ad-manager/api/reference/v202011/LineItemService#performLineItemAction
https://stackoverflow.com/questions/64829536
复制