调用DV360 C# API创建HTML5创意时遇CREATIVE_CUSTOM_EVENT_NAME_REQUIRED错误
解决DV360创建HTML5标准创意时的CREATIVE_CUSTOM_EVENT_NAME_REQUIRED错误
调用DV360的C# API创建CREATIVE_TYPE_STANDARD类型的HTML5创意时,已配置TimerEvent但仍触发如下错误:
CREATIVE_CUSTOM_EVENT_NAME_REQUIRED: A name is required for custom events. [400]
Errors [
Message[CREATIVE_CUSTOM_EVENT_NAME_REQUIRED: A name is required for custom events.] Location[ - ] Reason[badRequest] Domain[global]
]
错误原因
DV360的HTML5标准创意有明确规则:只要创意中包含自定义事件相关配置(比如TimerEvent、自定义点击事件等),必须在Creative对象的CustomEventNames字段中显式声明所有自定义事件的名称,哪怕只有一个TimerEvent也不能省略该步骤。之前的代码仅设置了TimerEvent,但未将对应的名称加入CustomEventNames集合,因此触发校验错误。
解决办法
初始化Creative对象时,添加CustomEventNames属性,将你定义的TimerEvent名称(示例中为"tick")加入该集合即可。
修改后的完整初始化代码
var mainAsset = new AssetAssociation { Asset = new Asset { MediaId = mediaId }, Role = "ASSET_ROLE_MAIN" }; var exitEvent = new ExitEvent { Type = "EXIT_EVENT_TYPE_DEFAULT", Url = exitUrl, Name = "EXIT_EVENT" }; var timerEvent = new TimerEvent { Name = "tick", ReportingName = "tick" }; var creative = new Creative { DisplayName = displayName, EntityStatus = "ENTITY_STATUS_ACTIVE", HostingSource = "HOSTING_SOURCE_HOSTED", CreativeType = "CREATIVE_TYPE_STANDARD", Dimensions = new Dimensions { HeightPixels = heightPixels, WidthPixels = widthPixels }, Assets = new List<AssetAssociation> { mainAsset }, ExitEvents = new List<ExitEvent> { exitEvent }, TimerEvents = new List<TimerEvent> { timerEvent }, // 新增:声明所有自定义事件的名称集合 CustomEventNames = new List<string> { "tick" } };
调用API代码(无需修改)
var request = displayVideoService.Advertisers.Creatives.Create(creative, advertiserId); await request.ExecuteAsync()
添加CustomEventNames后,API会识别到已明确声明自定义事件名称,即可通过校验并成功创建创意。
内容的提问来源于stack exchange,提问作者Developer
相关产品推荐
相关产品推荐

