Is there a standard way to implement AES 128?
There are several implementation strategies to AES (SIMD-based, plain-C, table-based, side-channel resistant, bit-sliced, AES-NI, ...). The "standard" way depends on your platform and goals, depending on the answer to questions such as "do yo have hardware support?", "do you want constant-timeness", "do you want maximal speed", "how much RAM / code space do you have?", "is your mode parallelized?", ...
Is it uncommon to implement your own version of AES?
Yes, it is, because there are already so many good open-source implementations, however people still do it every now and then. For example re-implement AES "just for fun" and sometimes they have a different set of optimization goals than all previous implementations like "minimize code-size, work everywhere in C, runs in constant-time".
I'm familiar with the AES algorithm and it seems like it would be
possible to implement your own way of scrambling the bits in the
No. If your implementation doesn't result in the same encryption and decryption functionality as described in FIPS 197, you do not get to call it "AES", because it's some custom scheme you made up.
I also noticed the NIST gives out certifications to individual
companies for their AES encryption (ie. Google, Cisco, HP, AWS, etc.)
Is this because it's a custom implementation?
The only actual evaluation and certification program that I'm aware of that is run by NIST is the cryptographic module validation program, which well, validates cryptographic modules according to FIPS 140-2. These validations are usually carried out by certified validators (certified by NIST). The modules may use AES but they usually do much more and the main aspect usually is on key management, role management and user authentication, but also of course on the correct implementation of the algorithms, so yes, you can get your AES implementation validated by this program, if it is part of a cryptographic module.