在AJAX请求更多帖子后如何在循环中保存PHP变量?

I have been looking at this code for far too long and am getting nowhere so hopefully someone can help me!

I am building a wordpress site, and for the main blog page, I want to display the content as tiles, but every 3 or 7, I want to display a promo content post-type. I can do this fine, but when I add a Load More Posts button, it resets the counter that I have keeping track of my extra promo content back to 0, therefore only showing the first 2 promo pieces over and over with each new load.

I would appreciate any help. I'm going in circles now.

the important parts of the home.php file :

<div class="blog-post-tiles">
    <?php
    //variables
        $counter = 0;
        $promo_counter = 0; 

        $args = array(
                        'post_type'  => 'promo',
                    );

                    //$postlist = new WP_Query( $args );
                    $postlist = get_posts($args);
                    $posts = array();

                    foreach ( $postlist as $post ) {
                        $promo_posts_array[] += $post->ID;
                    }
        ?>

        <?php if ( have_posts() ) : ?>
        <?php $query = new wp_query( $query_string.'&cat=-16' ); 
        while ( $query->have_posts() ) : $query->the_post() ?>

            <?php

                // print post loop

                get_template_part( 'template-parts/content', get_post_format() );

                $counter++;

                //display promo content ever 3rd or 10th spot
                if (($counter == 3) || ($counter % 10 == 0) || ($counter % 10 == 3)) {

                    if ($promo_counter < count($promo_posts_array)){

                        $print_post =  $promo_posts_array[$promo_counter];

                        $promo_thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id($print_post), array( 200,200 ), false, '');

                        ?>

                        <div class="posts_page_tile promo-tile" id="id-<?php echo $print_post; ?>">
                            <div class="entry-content">
                                <div class="promo-image" style="background-image:url('<?php echo $promo_thumbnail_src[0]; ?>'); background-color:<?php echo get_post_meta($print_post, 'bgcolor', true) ?>">
                                    <h3><a href="<?php echo get_post_meta($print_post, 'cta_link', true); ?>"><?php echo get_the_title($print_post); ?></a></h3>
                                    <div class="promo_button_white_border"><a href="' . get_post_meta($print_post, 'cta_link', true) . '"><?php echo  get_post_meta($print_post, 'cta', true); ?></a>
                                    </div>
                                </div>
                            </div>
                        </div>

                        <?php

                        } 
                        $promo_counter++;
                        wp_reset_postdata();
                }
            ?>


    <?php endwhile; ?>

I'm using this load more posts plugin.