A politically savvy Missouri teenager spoiled New York City Mayor Bill de Blasio’s big presidential announcement — unearthing a Facebook tip about the big reveal.

The progressive mayor apparently intended to make his official entry into the 2020 White House run Thursday morning on ABC’s “Good Morning America,” with an appearance alongside his wife Chirlane McCray.

But Gabe Fleisher, 17 — who authors a daily political newsletter “Wake Up To Politics” — noticed de Blasio had a event planned in Sioux City, Iowa, on Friday, tweeting that the local Democratic party, in a Facebook post, billed the event as the “first stop on his Presidential announcement tour.”

The de Blasio campaign scrambled to get on top of the tip, telling NBC News that de Blasio was tossing his hat into the ring. At the same time, the New York Daily News also reported the 2020 run was official.

With de Blasio becoming the 23rd Democrat to announce a White House bid, “he faces an uphill battle, with low early poll numbers both nationally and across the five boroughs,” the News reported.

De Blasio on Monday had a disastrous runup to the bumbled announcement, getting booed at a campaign-style rally inside Trump Tower, the News reported.

He seemed to make matters even worse when he tussled on Twitter with Eric Trump, warning that Trump Organization buildings might face some steep fines for non-compliance with a new law establishing tighter emission standards.

During the war of words, Eric Trump blasted the mayor, saying New York City had “gone to s**t” under the de Blasio administration.