Skip to main content
A trigger component is designed to stay empty, and take no space, whenever it has nothing good to show. That makes “it isn’t showing” the most common question. Work through the list below in order.

It isn’t showing

Check your setup first

  • The SDK is configured. A trigger component mounted before configure() waits and starts once the SDK is configured.
  • The trigger component is turned on for your app. Encore turns each trigger component on per app and sets its default look. Until then the entry renders nothing. Ask your Encore contact or write to admin@encorekit.com.
  • The reward sheet has offers at that placement. A trigger component only shows when the reward sheet it opens has offers for this user at this placement. Try show() at the same placement: if the sheet doesn’t present, the entry won’t show either.
  • The SDK version supports trigger components. See the note on Trigger components.
  • For Claim Reminder: there is a claim to show. Until the SDKs read open claims from Encore, after the first trigger component release, Claim Reminder shows only claims the user made in your app on this device. See Claim Reminder.

Every reason it can be empty

A trigger component renders nothing, at zero height, when: A failed request is asked again the next time your app returns to the foreground, so a trigger component that was empty while offline can appear later without any code from you.

It was showing, then disappeared

That’s expected in these cases:
  • The offers ran out. After the sheet closes, the entry checks again and hides when no offers are left.
  • The user claimed the offer. Claim Reminder hides when the brand confirms the user finished, and Gifts Button checks the offers afresh after a claim.
  • The reminder window ended. Claim Reminder hides when its countdown reaches zero. The claim itself stays open.
  • The user changed. After identify() or reset(), it reloads for the new user, who may have nothing to show.
  • The user dismissed it. A dismissed Claim Reminder stays hidden for that claim on that device.

Testing while you build

  • Use your test API key in debug builds, as for the rest of Encore. Ask your Encore contact to turn trigger components on for your test app, so the entries have a look to show.
  • Make sure the reward sheet has offers for your test user at the placement you’re testing. Calling show() at the same placement is the quickest check.
  • Test both states of every screen. Each screen with a trigger component should look right with and without it, because some users never see it: those with no offers, and those in a holdout group.
  • Watch your console. The cases marked “Logged once?” in the preceding table each log one warning per run of your app: in the Xcode console on iOS, the Android Studio log on Android, Metro or the native console on React Native, the debug console on Flutter, and the browser console on the web. On the web the SDK logs nothing by default: pass logLevel: 'warn' (or 'debug') to configure() to see these.

Common questions

Why does the Gifts Button sometimes have a different height?

Its height comes from the look Encore serves, and looks in one experiment can differ (the card is 76, the banner 88, the pulse 112). Leave the height flexible. See Heights.

Can the copy or colors change?

Pass appearance to set the trigger component’s own colors and light or dark mode; your colors win over your app’s portal theme and the look’s colors. It never styles the sheet the trigger component opens. See Colors. Pass icon to choose the icon; see Icon. The copy comes with the look, in the user’s language. To use your own words, pass headline, subheadline and cta; see Your text. Encore can also change the look’s own copy without an app update.

Can the app keep its own show() call next to a Gifts Button?

Use the Gifts Button in place of your own show() call at that moment, not as well as it. Both would open the sheet.

Does the app need to send any events?

No. Every trigger component reports its own impressions, taps, and dismissals to Encore’s analytics.

Can a trigger component crash the app?

No. Whatever goes wrong (a network error, an unknown ID, a look the SDK can’t draw) ends the same way: the entry renders nothing.