**Describe the bug**: When providing a non-string value to `elasticapm.set_transaction_name()`, APM Server discards the transaction. To avoid this, we should try and force the value to a string, raising a warning if it isn't possible. **To Reproduce** 1. start a transaction 2. call `elasticapm.set_transaction_name(["a list"])` 3. transaction fails schema validation **Environment (please complete the following information)** - OS: [e.g. Linux] Linux - Python version: 3.9 - Framework and version [e.g. Django 2.1]: - APM Server version: 7.13 - Agent version: 6.2.2