The Developer Advocate role is split into two parts. Firstly, I explain the technology I represent (in my case, cool open source things on IBM Cloud) to developer. You'll find me speaking, writing and generally making noise about the technology in the general direction of various developer communities. The other half of the job is much less visible: this is where I try to represent developer things back to IBM. This can be lobbying product owners for changes, reporting (or fixing) bugs in our tools, fixing documentation, offering feedback on new features - generally interfering in anything that could improve the life of developers trying to use our stuff.
The job requires a really weird mix of skills, and like most advocates I'm endlessly delighted to find that there is a job that combines such a great combination of stuff I like to do! We're really noticed as speakers and that's what most people think I do: they see tweets about my talks, the travel, the interviews, and so on - it's very visible. Personally, I think I'm more of a writer. There's a lot of overlap between speaking and writing; they are both really all about the story. When you write something down, it becomes accessible to many people. It can be found by search engine, read aloud by a screenreader or with a bigger font size, it can be translated .... not many of those things happen to my talks, even if there's a recording. Writing reaches more people, especially the people who might not be at those nice, big expensive western conferences that I speak at or with the time/bandwidth for a video recording of it. Written content also reaches people who want to learn about something I was working on last year or five years ago and am no longer giving talks about.
The less-visible part of the role is probably the most technical part. People rarely think of the gregarious advocates they see on stage or tweeting as being technical but I'm afraid we are, probably more than you expected. This less-visible part is also the best bit (at least for me). I write sample code and internal tools, but better than that: it's my business to wade in and improve anything that would make life easier for developers. I report bugs to and patch open source projects and their documentation, right across the spectrum of languages and projects. This is the best bit of my job: getting paid to make open source a tiny bit better in lots of different ways, all the time.
The role varies a lot between jobs but also between weeks, and that's part of the reason why it's so hard to answer the question "What does a Developer Advocate do?" - it's a little bit of everything.