> For the complete documentation index, see [llms.txt](https://ctracker-docs.keywordrush.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ctracker-docs.keywordrush.com/shops-and-cashback-rates/shop-logos.md).

# Shop logos

Affiliate networks are unreliable about logos. Some send none at all — CJ Affiliate's shop feed has no logo field, so every CJ shop arrives blank. The ones that do send a logo usually send a thumbnail: on a typical Linkwise catalog every logo is 120 pixels wide, which looks soft on any modern screen.

The logo service fills the gaps and refreshes the small ones, by looking each shop up by its own domain.

### Choosing a service

`Cashback Tracker` → `Settings` → `General`, under **Shops and shop pages**.

| Service          | Account needed | Quality                       | Attribution                   |
| ---------------- | -------------- | ----------------------------- | ----------------------------- |
| **Brandfetch**   | Free Client ID | Full logo                     | None                          |
| **Logo.dev**     | Free token     | Full logo                     | **Required on the free plan** |
| **Website icon** | None           | The site's icon, not its logo | None                          |

**Brandfetch** is the default and the one to pick if you are unsure. Register at [developers.brandfetch.com](https://developers.brandfetch.com/dashboard/logo-link), paste the Client ID into the setting, and you are done. The free allowance is 500,000 lookups a month, which no catalog will get near — six hundred shops is six hundred lookups, once.

**Logo.dev** works just as well, but read this first: their free plan requires a visible *"Logos provided by Logo.dev"* link on your site if you are running it commercially. Their paid plans remove that condition. Brandfetch asks for nothing, which is why it leads.

**Website icon** needs no account at all, so you can try the feature before signing up for anything. It fetches the small icon a site shows in a browser tab. That is genuinely a different thing from a logo — usually a square symbol, often only 32 to 48 pixels — so treat it as better-than-nothing rather than as the finished article.

{% hint style="info" %}
A shop with no logo is not broken. Cashback Tracker draws the shop's initials instead, in your own site colours. That is often tidier than a stretched low-resolution image, which is why the plugin never stores a made-up placeholder.
{% endhint %}

### Filling the logos

`Cashback Tracker` → `Shop catalog` → **Bulk tools**, beside the page title. The **Logos** row tells you how many shops have none, and which service they will come from.

Two buttons, because there are two jobs:

* **Fill missing** — shops that already have a logo are left exactly as they are. This is the safe, everyday choice.
* **Replace all** — fetches a fresh logo for every shop, replacing what the networks sent. This is the one to use when your catalog is full of 120-pixel thumbnails.

The run happens in the background:

* A progress bar appears under the heading, showing how far through it is.
* You can close the dialog, and the browser. The work carries on.
* **Stop**, on the same row, abandons the rest. Everything already fetched is kept.

When it finishes, the line under the heading reports what happened and stays there until the next run:

`Last run: 214 filled, 0 left alone, 89 with no logo available, 0 failed.`

### Reading that report

**Filled** is what you came for.

**Left alone** are shops the run deliberately did not touch — see the next section.

**No logo available** is not a fault. The service simply has nothing for that domain, which is normal for small regional merchants and for anything obscure. Those shops keep showing their initials. If a lot of shops land here, that is a sign about the service rather than about your site — Brandfetch and Logo.dev both know far more shops than the website icon option does.

**Failed** means something went wrong — a broken image, a site that would not answer. Those are written to `Cashback Tracker` → `Logs` with the reason.

### Logos you set yourself always win

If you have chosen a shop's featured image by hand, **Replace all** will not overwrite it. The plugin can tell its own downloads apart from an image you picked out of your media library, and yours is the one it keeps.

To hand a shop back to the service, remove its featured image in the page editor and run the job again.

### One shop at a time

Open any row in the Shop catalog. The drawer shows the shop's current logo with a **Fetch logo** button under it, which looks the logo up again and replaces what is there.

This is the right tool when a service has picked the wrong brand for a domain, or when you want to try a shop again after switching services. It needs the shop to have a page already, because that is where the logo is stored.

### New shops

Once a service is configured you do not have to think about this again. When a shop page is created and the network sent no logo, the service is asked at that moment, so your catalog fills itself in as it grows.

### If a run stops early

You may see:

> Brandfetch asked us to slow down, so the run stopped part way. Start it again later and it carries on where it left off.

That is a rate limit, and it is rare — you would have to be running a very large catalog very repeatedly to meet one. Nothing is lost. Wait a few minutes, press **Fill missing** again, and it resumes from where it stopped rather than starting over.

### Where logos are stored

On the shop page, as its featured image, in your own media library. Nothing is loaded from the logo service when a visitor views your site, and your pages do not depend on anyone else's server staying up.

This also means the logo survives everything the networks do. Shop details are rewritten from the network on every refresh; the featured image is yours and is never touched by a sync.

{% hint style="warning" %}
**Replacing all logos on a large catalog writes a new image per shop.** Six hundred shops means six hundred downloads and six hundred images. The old ones are deleted as they are replaced, so your media library does not double — but the run does take a few minutes and does spend a few hundred of your monthly allowance.
{% endhint %}
