Self Handled Cards

Self-handled cards give you the flexibility of creating Card Campaigns on the MoEngage Platform and displaying the cards anywhere inside the application. SDK provides APIs to fetch the campaign's data using which you can create your own view for cards.

SDK Installation

Installing using Catalog

Integration using a Version Catalog is the recommended way of integration, refer to the Configure Version Catalog document to configure a catalog if not done already. Once you have configured the catalog add the dependency in the app/build.gradle file as shown below

build.gradle

    dependencies {
    	...
    	implementation(moengage.cardsCore)
    }
    

Alternatively, you can add the dependency directly as shown below.

Installing using Artifact Id

Add the following dependency in the app/build.gradle file.

build.gradle

    dependencies {
    	...
      implementation("com.moengage:cards-core:$sdkVersion")
    }
    

replace $sdkVersion with the appropriate SDK version

Use the below APIs to fetch the card's data and build your own UI. The SDK provides both blocking and async APIs for fetching the data. In this document, we have just added the blocking APIs, refer to the API reference for MoECardHelper for the async APIs.

Notify on Section Load/Unload

You can show the cards on a separate screen or a section of the screen. When the cards screen/section is loaded call onCardSectionLoaded() and call onCardSectionUnloaded() when the screen/section is no longer visible or going to background.

KotlinJava

    // call on section or screen load
    MoECardHelper.onCardSectionLoaded(context,listener);
    // call when the section is no longer visible or going to background.
    MoECardHelper.onCardSectionUnloaded(context);
    

Fetch Categories

To fetch all the categories for which cards are configured, use the getCardCategories() API.

KotlinJava

    MoECardHelper.getCardCategories(context)
    

Additionally, you can optionally have an All category which would be like a superset of other categories. Use the isAllCategoryEnabled() API.

KotlinJava

    MoECardHelper.isAllCategoryEnabled(context)
    

Fetch Cards for Categories

To fetch cards eligible for display for a specific category use the getCardsForCategory() API

KotlinJava

    MoECardHelper.getCardsForCategory(context, "[YOUR_CATEGORY]")
    

To fetch all the cards eligible for display irrespective of the category pass the category CARD_CATEGORY_ALL as shown below

KotlinJava

    MoECardHelper.getCardsForCategory(context, CARDS_CATEGORY_ALL)
    

Refer to the documentation of the Card model to know more about the fields and data present.

Instead of using separate APIs to fetch the Cards and categories you can use the getCardsInfo() API to fetch all the information in one go

KotlinJava

    MoECardHelper.getCardsInfo(context)
    

Track Statistics for Cards

Since the UI/display of the cards is controlled by the application to track statistics on delivery, display, click we need the application to notify the SDK.

Delivered

To track delivery to the card section of the application call the cardDelivered() API when the cards section of the application is loaded.

KotlinJava

    MoECardHelper.cardDelivered(context)
    

Impression

Call the cardShown() API when a specific card is visible on the screen.

KotlinJava

    MoECardHelper.cardShown(context, card)
    

Click

Call the cardClicked() API whenever a user clicks on a card, along with the card object widget identifier for the UI element clicked should also be passed. 

KotlinJava

    MoECardHelper.cardClicked(context, card, widgetId)
    

Delete Card

Call the deleteCard() API to delete a card

KotlinJava

    MoECardHelper.deleteCard(context, card)
    

To delete a list of cards use deleteCards() API.

Refer to the documentation for a complete guide on available helper APIs.

Version Compatibility

The cards-core artifact/module is dependent on the Core SDK or moe-android-sdk artifact/module.
Based on the version of the Core SDK you are using choose the right version of the Cards core module.

Core SDK Version Cards Core Version
12.0.00 and later 1.0.0 and later
Was this article helpful?
0 out of 0 found this helpful