使用 google 广告管理器 api 删除订单项

Using the google ad manager api to delete a line item

我需要一些有关 google 广告管理器 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

所以我终于找到了答案。

performLineItemAction接受2个参数。第一个是 LineItemAction,第二个是 Statement。我发现文档有点混乱,因为我认为 LineItemActionLineItem 对象的一个​​方法。原来第一个参数其实是一个字典

line_item_service.performLineItemAction({'xsi_type':'ArchiveLineItems'},statement.ToStatement())

附带说明一下,订单项一旦投放,我们就无法将其删除。我们可以暂停它或存档它。在这种情况下,我选择将其存档。可以在此处找到不同类型的订单项操作。

https://developers.google.com/ad-manager/api/reference/v202011/LineItemService#performLineItemAction