I'm trying to understand this answer by Noah Schweber, specifically the first paragraph about the truth value of existential second-order sentences being preserved by ultrapowers. It seems like an interesting fact. In order to understand that, I first need to understand what the construction $\prod_{i \in I} M_i / U$ means.
I can follow the definition and have a vague sense that elements in $\prod_{i \in I} M_i / U$ are the same if and only they are eventually the same, with $U$ providing our notion of eventualness, but I'm having a hard time picturing why $U$ needs to be an ultrafilter rather than merely being upwardly closed. I'm also struggling to see why we needed to rule out $U=2^I$ (why the filter needs to be proper) and rule out $U=\varnothing$ (filters can't be empty).
Following the Wikipedia article, the initial definition of a product over an indexed family of structures seems straightforward to define.
I'll use $M_i$ to refer to both the structure $M_i$ and its universe, depending on the context.
Let $I$ be an index set. Let $M_i$ be a relational structure for each $i$. I am ignoring function and constant symbols for the time being. Let $F_i$ be the frame associated with $M_i$. Let $(r, n, \alpha) \in F_i$ hold if and only if $r$ is an n-ary predicate in the shared signature of all $M_I$ and the interpretation of $r$ in $M_i$ is $\alpha \subset M_i^n$.
$ \prod_{i \in I} M_i $ is straightforward to define.
$ v \in (\prod_{i \in I}M_i)$ holds if and only if $\forall k \in I \mathop. v_k \in M_k$ holds.
$(r, n, \alpha) \in (\prod_{i \in I} F_i)$ holds if and only if $\forall v \in r \mathop. \forall k \in I \mathop. v_k \in M_i$ holds.
Cool, so now $\prod_{i \in I}M_i$ is a structure.
I'm operating under the assumption that $\prod_{i \in I} M_i/U$ can be interpreted as $(\prod_{i \in I} M_i)/U$, i.e. there's a sensible way to interpret an ultrafilter as an equivalence relation $R$ on $\prod_{i \in I} M_i$ that respects the interpretations of all the relation symbols. (I would call $R$ a congruence relation if the symbols were function symbols, but I'm not sure that congruence relation is technically correct here.)
$U$ is an ultrafilter, meaning it is a maximal element in the lattice of proper filters on $I$ ordered by inclusion.
If $a$ and $b$ are two elements of $\prod_{i \in I}M_i$, let $J(a, b)$ be defined as the set of indices where they are the same.
$$ J(a, b) = \{ i : i \in I \land a_i = b_i \} $$
So now we define $R$, $R(a, b) \iff J(a, b) \in U$.
This makes sense, but it's not really clear where we used the maximalness assumption, or why we needed to rule out $U=2^I$, or why we needed to rule out $U=\varnothing$.