Ways to Keep/Improve Favor with a city-state: 1. The Patronage Social Policy Tree - this tree has can help improve the amount of influence gained with cash donations, slow the decrease of influence over time, and improve the "default" influence level on all city-states. These policies make a huge difference. 1. Playing as Alexander the Great of Greece gets you the "Hellenic League" bonus: "City-State influence degrades half as slowly as normal, and it recovers at twice the speed as for other civilizations." Also, Alexander has an undocumented bonus that trespassing in the territory of another city-state does not cause you to lose influence with them. 1. Pay attention to the disposition of the city-states you ally with. "Friendly" nations will lose influence slower, and "Hostile" nations lose influence faster. Favor Friendly allies to save money. 1. Do Quests offered by the city-state. 1. Liberate a conquered city-state. Liberating a conquered city-state will greatly increase your favor with them. City-State must have been conquered by an opposing nation first. Liberated City-States will also Always vote for you for Diplomatic Victory. 1. Free stolen workers - if another player has stolen a worker from a city-state, capturing the worker will give you an option to give it back to the city-state it originated from. I only had this happen once, but I think it gave me more influence than gifting my own units to them, if I'm recalling correctly. (Please correct me in the comments if this is wrong) 1. Gift Units to the city-state. 1. Gift Money to the City-State. (Edited to summarize a number of good points made by other posters)