Public Methods
AppVirality provides a very simple and efficient approach for an application to communicate with our SDK.
A whole set of public methods exists within the SDK using which you can easily access most of the growth hacks data, execute various SDK tasks, invoke from a large set of APIs, etc.
AppVirality is the main SDK class and point of interface for an application to communicate with the SDK.
Most of the methods you will use will be from this class, so its very important to instantiate it before actually starting to use it. Though it can be instantiated from any class, but it is highly recommended to do so in the very first screen of your app, so that the SDK would be ready to use by the time your app transits to the main screen.
Use the following code to instantiate the AppVirality class:
AppVirality appVirality = AppVirality.getInstance(this);
As AppVirality class uses singleton format, you can use the same above code to retrieve its instance throughout your app.
Below is a full list of public methods provided by the AppVirality SDK, you can check them out to know their use case, return type and input parameters:
static AppVirality getInstance(Context context)
static AppVirality getInstance(Context context, Config config)
Returns the AppVirality class singleton, instantiating it if not already instantiated.
Include this method in the very first screen of your app, so that the SDK would be ready to use by the time your app transits to the main screen.
Parameters
context Context |
The context to instantiate the class |
config Config |
Config class instance to customize the configuration |
Returns
AppVirality | AppVirality class singleton |
void checkAttribution(CheckAttributionListener checkAttributionListener)
This callback is used to check the attribution status for a user, it returns the user and referrer data in the callback.
This method can be used to check if the user is an existing user, referred user, etc.
Parameters
checkAttributionListener CheckAttributionListener |
To get the user and referrer data in the callback after API execution. |
void init(UserDetails userDetails, AppViralitySessionInitListener appViralitySessionInitListener)
Initializes the SDK. Calls the initialization APIs to get the user and referrer data.
First create a UserDetails class instance and set the user data using its setter methods, then pass that instance in this method. Use this method in the very first screen of your app so that all required data would be ready by the time your app transits to the main/home screen.
Parameters
userDetails UserDetails |
Carrying the user data to be used for initialization. |
appViralitySessionInitListener AppViralitySessionInitListener |
Callback interface if you want to get the callback after API execution ; else null. |
void recordImpressionsClicks(String campaignId, boolean isImpression, boolean isClick)
Records impressions or clicks for a campaign.
For ex, if a user launches the Word of Mouth campaign its an impression, if he/she clicks on social network to refer its a click.
Parameters
campaignId String |
Campaign ID for which to record the impression or click. |
isImpression boolean |
True, if recording an impression ; else False. |
isClick boolean |
True, if recording a click ; else False. |
void submitReferralCode(String referralCode, SubmitReferralCodeListener submitReferralCodeListener)
Submits the referrer’s referral code to attribute a user.
Upon successful execution the user will be attributed to the referrer whose referral code is passed in this method. Use this method only if the attribution has not happened already from Referral Link.
Parameters
referralCode String |
Referral code of the referrer. It can contain characters from a-z, A-Z, 0-9, or – only. |
submitReferralCodeListener SubmitReferralCodeListener |
Callback interface if you want to get the callback after API execution ; else NULL |
void updateAppUserInfo(UserDetails userDetails, UpdateUserInfoListener updateUserInfoListener)
This method is used to update various user related data like username, address, push token, etc.
First create a UserDetails class instance and set the user data you want to update using its setter methods, then pass that instance in this method.
Parameters
userDetails UserDetails |
Carrying the user data to be updated. |
updateUserInfoListener UpdateUserInfoListener |
Callback interface if you want to get the callback after API execution ; else NULL |
void saveConversionEvent(String event, String transactionValue, String transactionUnit, JSONObject extraInfo, Constants.GrowthHackType growthHackType, ConversionEventListener conversionEventListener)
This method is used to record conversion events.
Standard conversion events include install, signup and transaction, apart from these you can also record any custom event for which you may want to reward the user. Recording conversion events are very critical for rewarding a user, reward for an event shall only be given after it gets recorded.
Parameters
event String |
Name of the event to be recorded. |
transactionValue String |
Transaction amount for the event if applicable ; else null. |
transactionUnit String |
Transaction unit for the event if applicable ; else null. |
extraInfo JSONObject |
Additional data to be returned with the webhook. |
growthHackType enum |
Type of growth hack for which recording event. Ex, Constants.GrowthHackType.Word_of_Mouth, Constants.GrowthHackType.Loyalty_Program, etc. |
conversionEventListener ConversionEventListener |
Callback interface if you want to get the callback after API execution ; else NULL |
void getCampaignTerms(String campaignId, CampaignTermsListener campaignTermsListener)
Used to get the terms and conditions for a campaign.
It calls the /campaignterms API and passes back the fetched terms and conditions in the callback.
Parameters
campaignId String |
Campaign ID for which to fetch the terms and conditions. |
campaignTermsListener CampaignTermsListener |
Callback interface to get the campaign's terms and conditions in the callback. |
void customizeReferralCode(String referralCode, CustomizeRefCodeListener customizeRefCodeListener)
Requests the /customizereferralcode API to customize the referral code for a user.
Use customizeRefCodeListener to know if the referral code got changed and update it in the campaign details in your app.
Parameters
referralCode String |
New Referral Code. It can contain characters from a-z, A-Z or 0-9 only, with a maximum length of 10 characters. |
customizeRefCodeListener CustomizeRefCodeListener |
Callback interface to get the callback after API execution, and to know if the referral code got changed or not |
void getUserRewardDetail(String campaignId, UserBalanceListener userBalanceListener)
Used to get the reward data for a user.
It calls the /getuserbalance API to fetch the user balance and passes it back in the callback.
Parameters
campaignId String |
Campaign ID for which to get the reward data. |
userBalanceListener UserBalanceListener |
Callback interface to get the reward data in the callback |
void getUserRewards(Constants.GrowthHackType growthHackType, String campaignId, UserRewardsListener userRewardsListener)
Used to get the detail reward data for a user.
It calls the /getuserrewards API to fetch the user reward detail and passes it back in the callback.
Parameters
growthHackType enum |
Type of growth hack for which getting the rewards data. Ex, Constants.GrowthHackType.Word_of_Mouth, Constants.GrowthHackType.Loyalty_Program, etc. |
campaignId String |
Campaign ID for which to get the reward data. |
userRewardsListener UserRewardsListener |
Callback interface to get the detail reward data in the callback |
void getUserCoupons(UserCouponsListener userCouponsListener)
This method is used to get the coupons for a user.
It calls the /getusercoupons API to fetch the user coupons data and passes it back in the callback.
Parameters
userCouponsListener UserCouponsListener |
Callback interface to get the user coupons data in the callback |
void getCouponPools(String campaignId, CouponPoolsListener couponPoolsListener)
This method is used to get the coupons pools from which the user could redeem coupons.
It calls the /getcouponpools API to fetch the coupon pools data and passes it back in the callback.
Parameters
campaignId String |
Campaign ID for which to get the coupon pools data. Required, if want to get the coupon pools data for some particular campaign ; else null to get all coupon pools data for an app |
couponPoolsListener CouponPoolsListener |
Callback interface to get the coupon pools data in the callback |
void redeemFromPool(String poolId, CouponRedeemListener couponRedeemListener)
This method is used to redeem a coupon from some coupon pool.
It calls the /redeemrewards API to redeem the coupon.
Parameters
poolId String |
Coupon Pool ID from which to redeem the coupon. |
couponRedeemListener CouponRedeemListener |
Callback interface if you want to get the callback after API execution ; else NULL |
void getFriends(int pageIndex, int pageSize, GetFriendsListener getFriendsListener)
This method is used to get the user’s friends.
It calls the /getfriendslist API to fetch the friends data and passes it back in the callback.
Parameters
pageIndex int |
Index of the page for implementing Paging. |
pageSize int |
Number of records to fetch per page. |
getFriendsListener GetFriendsListener |
Callback interface to get the friends data in the callback |
void recordProductAttribution(String clickId, ProductAttributionListener productAttributionListener)
This method is used to record the attribution for a shared product.
It calls the /recordproductattribution API to attribute share to the user who shared the product.
Parameters
clickId String |
Click ID from intent extras when someone clicks on the shared product deep link. |
productAttributionListener ProductAttributionListener |
Callback interface to get the API response in the callback |
void getReferrerDetails(ReferrerDetailsReadyListener referrerDetailsReadyListener)
This method is used to get the referrer and user details from the SDK.
If the details are already available with the SDK it will pass them back in the callback ; else will be passed after SDK gets the details from some API response.
Parameters
referrerDetailsReadyListener ReferrerDetailsReadyListener |
Callback interface to get the referrer details in the callback |
void getCampaigns(Constants.GrowthHackType growthHackType, CampaignDetailsListener campaignDetailsListener)
This method is used to get the active campaign details.
If the details are already available with the SDK it will pass them back in the callback ; else will be passed after fetching from the server. When in Test Mode, each call to this method will invoke a call to “/getcampaign” API to refresh campaign details whereas in Live Mode it refreshes the campaign details if the details were last fetched more than half hour before.
Parameters
growthHackType enum |
Type of growth hack for which to get campaign details Example: Constants.GrowthHackType.Word_of_Mouth, Constants.GrowthHackType.Loyalty_Program, etc. Required, if you want to get campaign details for some particular growth hack type ; else NULL to get all active campaign details |
campaignDetailsListener CampaignDetailsListener |
Callback interface to get the campaign details in the callback |
boolean checkUserTargeting(CampaignDetail campaignDetail, boolean isMiniNotification)
This method is used to check the user targeting conditions as set on dashboard.
Use this method to check if the user targeting conditions satisfy before showing popup or notification prompting user to launch growth hack.
Parameters
campaignDetail CampaignDetail |
Details of the campaign for which the launch popup or notification |
isMiniNotification boolean |
True if you want to show mini notification ; else False for popup |
Returns
boolean | True, if the user targeting conditions satisfy ; else False |
void saveRemindLater(CampaignDetail campaignDetail)
It just records a click on Remind Later option from some popup to launch the growth hack.
It is particularly needed to meet the user targeting conditions, for ex. when to show the popup again if user chooses to remind later.
Parameters
campaignDetail CampaignDetail |
Details of the campaign for which the user chose to remind later |
boolean isReferredUser()
This method is used to know if the user is a referred user.
It would be a referred user if the user has installed the app by clicking on some other user’s referral link.
Returns
boolean | True, if the user is a referred user ; else False |
boolean isExistingUser()
This method is used to know if the user is an existing user.
It would be an existing user if the user already existed before installing the app or if the app has just got updated.
Returns
boolean | True, if the user is an existing user ; else False |
void setExistingUser()
This method is used to mark a user as an existing user.
Once you display welcome screen to the new user, mark that user as an existing user to avoid displaying welcome screen again and again.
String getReferrerRefCode()
This method is used to get the referrer’s referral code.
Referrer is the user on whose referral the user has installed the app.
The referral code returned here shall be used to attribute the user to the referrer.
Returns
String | Referral code of the referrer |
String getAttributionSetting()
This method is used to get the type of attribution that your apps uses.
This setting specifies how a new user shall be attributed to the referrer.
Returns
String | Attribution setting for the app. Possible values are: 0 if the user can be attributed only via referral link 1 if attribution can happen via referral link or referral code 2 if attribution shall happen only via referral code |
boolean isAttributionConfirmed()
This method is used to check if the user has been attributed successfully to the referrer.
Returns
boolean | True, if the user has been confirmed ; else False |
void popUpShown(String campaignId)
Used to record whenever a popup or mini notification prompting to launch the growth hack is shown to the user.
It is basically used by the SDK to meet the user targeting requirements, for ex. how many times to show the the popup, when to show again, etc. Use this method after displaying any such popup or mini notification to ensure that user targeting conditions work properly.
Parameters
campaignId String |
ID of the campaign for which the popup or notification has been shown |
void copiedToClipboard()
Used to record an invite event when a user copies his share link to share from outside the app.
void invokeInvite(SocialItem socialItem, boolean isRewardExists)
Used to record an invite event when a user invites someone to the growth hack campaign.
Parameters
socialItem SocialItem |
SocialItem class instance which is being used for the invite. |
isRewardExists boolean |
True, if reward exists for the campaign ; else False. |
void logout()
Used to logout the current logged-in user.
When invoked this method clears SDK data from the device, so that it can be used by some other user to login and participate in the growth hack campaigns. Use this method if your app supports login/logout feature so that multiple users with different email ids can use the same device.
static void setReferrerKey(Context context, String referrer)
This method is used to set the referrer information received in the INSTALL_REFERRER broadcast when a user will download the app from play store.
Parameters
context Context |
Details of the campaign for which the user is inviting. |
referrer String |
Data received in referrer parameter in the INSTALL_REFERRER broadcast |
boolean hasProductSharingReward(String sku, String category, int price)
This method is used to check if reward exists on a product under product sharing campaign. Use this method to show/hide the product share option.
Parameters
sku String |
SKU of the product. |
category String |
Category of the product. |
price int |
Price of the product. |
Returns
boolean | True, if product has reward under product sharing campaign ; else False |
String getProductSharingRewardMsg(String sku, String category, int price)
This method is used to get a reward message under product sharing campaign to be shown to the user for sharing the product. It checks what reward exists for referrer and friend on a product and returns a dynamic reward message for the same.
Parameters
sku String |
SKU of the product. |
category String |
Category of the product. |
price int |
Price of the product. |
Returns
String | Reward message, if at least one of referrer and friend has reward on sharing the product; else NULL |
CampaignDetail getCampaignDetail(Constants.GrowthHackType growthHackType, ArrayList<CampaignDetail> campaignDetails)
This method is used to get campaign detail for a particular growth hack type from a list of campaign details.
Parameters
growthHackType enum |
Type of growth hack whose campaign detail you want to get from the list. Ex, Constants.GrowthHackType.Word_of_Mouth, Constants.GrowthHackType.Loyalty_Program, etc. |
campaignDetails ArrayList<CampaignDetail> |
Array list of campaign details. |
Returns
CampaignDetail | Campaign Details for the requested growth hack type. |
void recordSocialAction(String socialActionId, Constants.GrowthHackType growthHackType, String shortCode, String shareMsg)
This method is used to record the social action used for referral.
Parameters
socialActionId String |
Identifier for the social action used for sharing. |
growthHackType enum |
Type of growth hack for which sharing on social channel. Ex, Constants.GrowthHackType.Word_of_Mouth, Constants.GrowthHackType.Loyalty_Program, etc. |
shortCode String |
User's short code. |
shareMsg String |
Message to be shared on social channel. |
String getClickId(String referrer)
This method is used to get the click-Id from ‘referrer’ string.
Parameters
referrer String |
Referrer string. |
Returns
String | Click-Id. |
String getProductCode(String referrer)
This method is used to get the product code of the shared product.
Parameters
referrer String |
Referrer string. |
Returns
String | Product Code of the shared product. |
String getUserKey()
This method is used to get the current user’s user key.
Returns
String | User Key for the current user. |
void setInstagramImagePath(String path)
This method is used to set the Instagram share image path.
Parameters
path String |
Instagram share image path. |
void setPinterestImagePath(String path)
This method is used to set the Pinterest share image path.
Parameters
path String |
Pinterest share image path. |
void setTwitterImagePath(String path)
This method is used to set the Twitter share image path.
Parameters
path String |
Twitter share image path. |
void getInstagramImagePath()
This method is used to get the Instagram share image path.
void getPinterestImagePath()
This method is used to get the Pinterest share image path.
void getTwitterImagePath()
This method is used to get the Twitter share image path.
void invokeProductShare(SocialItem socialItem, boolean isRewardExists, ProductDetails productDetails, JSONObject replacementTokens)
Used to record a product sharing event when user shares a product.
Parameters
socialItem SocialItem |
SocialItem class instance which is being used for the invite. |
isRewardExists boolean |
True, if reward exists for the campaign ; else False. |
productDetails ProductDetails |
ProductDetails class instance for the product being shared. |
replacementTokens JSONObject |
Replacement tokens to be used for share message. |