You could use the QGIS field calculator to add a column with an expression to build the HTML you want for the popup.
We can take @öbl's html and convert it to a field calculator expression:
'<table>
<tr style=''background-color:#9DBBE0''>
<th colspan=''2''>'|| "AMA_NAME"|| '</th>
</tr>
<tr style=''background-color:#ffffff''>
<td>FID</td>
<td> '|| "FID"||' </td>
</tr>
<tr style=''background-color:#9DBBE0''>
<td>AMA_NAME</td>
<td>'|| "AMA_NAME" ||'</td>
</tr>
</table>'
Note the double quotes surrounding the html properties need to be changed to pairs of single quotes, because the field calculator uses double quotes to identify field names.
When you export as KML you choose the calculated column for the "DescriptionField" and the AMA_Name for the "NameField".
I don't have the same data as you, but here is an example of the type of thing you should see in Google Earth:
Edit:
Here is a custom function for the field calculator to build the HTML table for you so you don't have to do the concatenation by hand. (Its my first attempt at a custom function, I would have liked to make the second and third arguments optional and to pass them in as python lists instead of strings - that was how it worked in the python console, but I couldn't get it to work that way as a custom function)
#Sample custom function file
#(uncomment to use and customize or Add button to create a new file)
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def KMLDescription(titleField,columns,labels,feature,parent):
"""
<h2>KMLDescription</h2>
Function to concatenate columns into HTML table for KML export or HTML label in QGIS
<h2>Syntax</h2>
KMLDescription ( titleField, columns, labels )
<h2>Arguments</h2>
<ul>
<li> titleField: string, the name of the column containing the value to show in the table header</li>
<li> columns: string, comma separated list of attributes to include in the table rows <br/>
<b> Use asterisk: '*' to include all columns</br></li>
<li> labels: string, comma separated list of descriptions as a user friendly alternative to the attribute names <br/>
<b> Use asterisk: '*' if you just want to use attribute names</b></li>
</ul>
<h2>Examples</h2>
<ul>
<li> KMLDescription ( 'Site Name', '*', '*' )</li>
<li> KMLDescription ( 'Site Name', 'RESP_UNIT,LAST_INSP', '*' )</li>
<li> KMLDescription ( 'Site Name', 'RESP_UNIT,LAST_INSP', 'Responsible Unit,Last Inspection Date' )</li>
</ul>
"""
#layer=iface.activeLayer()
#f=layer.selectedFeatures()[0]
fields=feature.fields()
oddRowColour='#9DBBE0'
evenRowColour='#ffffff'
backColour=oddRowColour
#titleField=args[0]
if (columns=='*'):
columns=fields.names()
else:
columns=columns.split(',')
if (labels=='*'):
labels=columns
else:
labels=labels.split(',')
headerRow='<tr style="background-color:{0}">'\
'<th colspan="2">{1}</th>'\
'</tr>'
dataRow='<tr style="background-color:{0}">'\
'<td>{1}</td>'\
'<td>{2}</td>'\
'</tr>'
html='<table>'
html +=headerRow.format(backColour,str(feature[titleField]))
for idx, fld in enumerate(columns):
backColour = evenRowColour if backColour == oddRowColour else oddRowColour
html+=dataRow.format(backColour,labels[idx], str(feature[fld]))
html+='</table>'
return(html)