eg,
//SetAdvId sets AdvId, Tag 2
func (m Advertisement) SetAdvId(v string) {  // accepts Go's primitive type
    m.Set(field.NewAdvId(v))
}
//GetAdvId gets AdvId, Tag 2
func (m Advertisement) GetAdvId() (f field.AdvIdField, err quickfix.MessageRejectError) { // does not return Go's primitive type but Field
    err = m.Get(&f)
    return
} Getters and setters should be symmetric
See mailing list for discussion