How to add banners in between products on a collection page.

1.collection-template.liquid.

2.find product-card-grid.liquid from snippets

current code

<ul class="grid grid--uniform{% if collection.products_count > 0 %} grid--view-items{% endif %}">
        {% for product in collection.products %}
          <li class="grid__item grid__item--{{section.id}} {{ grid_item_width }}">
            {% include 'product-card-grid', max_height: max_height %}
          </li>

Update code

<ul class="grid grid--uniform{% if collection.products_count > 0 %} grid--view-items{% endif %}">
        {% for product in collection.products %}
          <li class="grid__item grid__item--{{section.id}} {{ grid_item_width }}">
            {% include 'product-card-grid', max_height: max_height %}
          </li>
add banner code according to the positions where do you want to display after 4 products or 10 products 
{% if forloop.index == 4 and current_page == 1 and collection.title == "onsale" %}
        <li class="grid__item medium-up--two-quarters" >
          <div class="grid-view-item product-card " style="height: 100%;">
            {{ 'testingbanner.png' | asset_url | img_tag }}
          </div>
        </li>
        <li>
        </li>
{%endif%}

Full Code

<ul class="grid grid--uniform{% if collection.products_count > 0 %} grid--view-items{% endif %}">
        {% for product in collection.products %}
          <li class="grid__item grid__item--{{section.id}} {{ grid_item_width }}">
            {% include 'product-card-grid', max_height: max_height %}
          </li> 
{% if forloop.index == 4 and current_page == 2 and collection.title == "onsale" %}
        <li class="grid__item medium-up--two-quarters" >
          <div class="grid-view-item product-card " style="height: 100%;">
            {{ 'testingbanner.png' | asset_url | img_tag }}
          </div>
        </li>
        <li>
        </li>
{%endif%}

Categorized in: