I think @jbacus asks the key question. Do you have a destination for the .dae that is able to read that attribute data and do something with it? Lacking that, it would be pointless to export it from SketchUp. And having such, changes to the exporter would have to be targeted to that particular usage, which might be completely ad-hoc to your particular case. If ad-hoc, you will almost surely have to write (or hire someone to write) an exporter just for you.
I have added a custom attribute to some skp faces that marks them as window(or light source) with a unique id(which is the persistent_id in this case).
An external application imports the dae file and needs to have the knowledge that which triangles are windows and what id.
What does that external application look for in the dae file? That is, what XML element(s) and with what values? An exporter would have to target exactly those elements (unless, of course, the external app can be reworked to look for whatever the SketchUp exporter wrote).
Does that mean that the external app already knows what to look for in “extra” or will be rewritten to do so? There’s a difference between having a slot where you can put something arbitrary and having a consumer that knows how to interpret what you put there.
Yes the external app knows what to look for in the “extra” tag.
well the external program can be modified to read the extra tag and interpret it in the way that is required.
Yes, you can assign a material to a face, then when you export to Collada that material will be preserved. You can choose how you want to interpret material properties in your rendering application. This Help Center article might help with the basics.