You can integrate the Adjust iOS SDK with Criteo events by using the Adjust Criteo plugin.
Set up your environment
Add the following line to your Podfile
:
pod 'Adjust/Criteo'
Add following line to your Cartfile
:
github "adjust/ios_sdk" "criteo"
Install from source
You can also integrate adjust with Criteo events by following these steps:
- Locate the plugin/Criteo folder inside the downloaded archive from the releases page.
- Drag the
ADJCriteo.h
andADJCriteo.m
files into the Adjust folder inside your project. - In the dialog choose options for adding these files. Make sure to check the checkbox to Copy items if needed and select the radio button to Create groups.
Work with Criteo events
Once you have set up your environment, you can start recording Criteo events with the Adjust SDK.
View listing
let event = ADJEvent(eventToken: "{viewListingEventToken}")let productIds = ["productId1", "productId2", "product3"]ADJCriteo.injectViewListing(into: event, productIds: productIds)Adjust.trackEvent(event)
#import "ADJCriteo.h"
ADJEvent *event = [ADJEvent eventWithEventToken:@"{viewListingEventToken}"];NSArray *productIds = @[@"productId1", @"productId2", @"product3"];[ADJCriteo injectViewListingIntoEvent:event productIds:productIds];[Adjust trackEvent:event];
View product
let event = ADJEvent(eventToken: "{viewProductEventToken}")ADJCriteo.injectViewProduct(into: event, productId: "productId1")Adjust.trackEvent(event)
#import "ADJCriteo.h"
ADJEvent *event = [ADJEvent eventWithEventToken:@"{viewProductEventToken}"];[ADJCriteo injectViewProductIntoEvent:event productId:@"productId1"];[Adjust trackEvent:event];
Cart
let event = ADJEvent(eventToken: "{cartEventToken}")
let product1 = ADJCriteoProduct(id: "productId1", price: 100.0, quantity: 1)let product2 = ADJCriteoProduct(id: "productId2", price: 77.7, quantity: 3)let product3 = ADJCriteoProduct(id: "productId3", price: 50, quantity: 2)let products = [product1, product2, product3]
ADJCriteo.injectCart(into: event, products: products)
Adjust.trackEvent(event)
#import "ADJCriteo.h"
ADJEvent *event = [ADJEvent eventWithEventToken:@"{cartEventToken}"];
ADJCriteoProduct *product1 = [ADJCriteoProduct productWithId:@"productId1" price:100.0 quantity:1];ADJCriteoProduct *product2 = [ADJCriteoProduct productWithId:@"productId2" price:77.7 quantity:3];ADJCriteoProduct *product3 = [ADJCriteoProduct productWithId:@"productId3" price:50 quantity:2];NSArray *products = @[product1, product2, product3];
[ADJCriteo injectCartIntoEvent:event products:products];
[Adjust trackEvent:event];
Transaction confirmed
let event = ADJEvent(eventToken: "{transactionConfirmedEventToken}")
let product1 = ADJCriteoProduct(id: "productId1", price: 100.0, quantity: 1)let product2 = ADJCriteoProduct(id: "productId2", price: 77.7, quantity: 3)let product3 = ADJCriteoProduct(id: "productId3", price: 50, quantity: 2)let products = [product1, product2, product3]
ADJCriteo.injectTransactionConfirmed(into: event, products: products)
Adjust.trackEvent(event)
#import "ADJCriteo.h"
ADJEvent *event = [ADJEvent eventWithEventToken:@"{transactionConfirmedEventToken}"];
ADJCriteoProduct *product1 = [ADJCriteoProduct productWithId:@"productId1" price:100.0 quantity:1];ADJCriteoProduct *product2 = [ADJCriteoProduct productWithId:@"productId2" price:77.7 quantity:3];ADJCriteoProduct *product3 = [ADJCriteoProduct productWithId:@"productId3" price:50 quantity:2];NSArray *products = @[product1, product2, product3];
[ADJCriteo injectTransactionConfirmedIntoEvent:event products:products transactionId:@"transactionId1" newCustomer:@"newCustomerId"];
[Adjust trackEvent:event];
User level
let event = ADJEvent(eventToken: "{userLevelEventToken}")
ADJCriteo.injectUserLevel(into: event, uiLevel: 1)
Adjust.trackEvent(event)
#import "ADJCriteo.h"
ADJEvent *event = [ADJEvent eventWithEventToken:@"{userLevelEventToken}"];
[ADJCriteo injectUserLevelIntoEvent:event uiLevel:1];
[Adjust trackEvent:event];
User status
let event = ADJEvent(eventToken: "{userStatusEventToken}")
ADJCriteo.injectUserStatus(into: event, uiStatus: "uiStatusValue")
Adjust.trackEvent(event)
#import "ADJCriteo.h"
ADJEvent *event = [ADJEvent eventWithEventToken:@"{userStatusEventToken}"];
[ADJCriteo injectUserStatusIntoEvent:event uiStatus:@"uiStatusValue"];
[Adjust trackEvent:event];
Achievement unlocked
let event = ADJEvent.eventToken("{achievementUnlockedEventToken}")
ADJCriteo.injectAchievementUnlocked(into: event, uiAchievement: "uiAchievementValue")
Adjust.trackEvent(event)
#import "ADJCriteo.h"
ADJEvent *event = [ADJEvent eventWithEventToken:@"{achievementUnlockedEventToken}"];
[ADJCriteo injectAchievementUnlockedIntoEvent:event uiAchievement:@"uiAchievementValue"];
[Adjust trackEvent:event];
Custom event
let event = ADJEvent.eventToken("{customEventEventToken}")
ADJCriteo.injectCustomEvent(into: event, uiData: "uiDataValue")
Adjust.trackEvent(event)
#import "ADJCriteo.h"
ADJEvent *event = [ADJEvent eventWithEventToken:@"{customEventEventToken}"];
[ADJCriteo injectCustomEventIntoEvent:event uiData:@"uiDataValue"];
[Adjust trackEvent:event];
Custom event 2
let event = ADJEvent(eventToken: "{customEvent2EventToken}"
ADJCriteo.injectCustomEvent2(into: event, uiData2: "uiDataValue2", uiData3: 3)
Adjust.trackEvent(event)
#import "ADJCriteo.h"
ADJEvent *event = [ADJEvent eventWithEventToken:@"{customEvent2EventToken}"];
[ADJCriteo injectCustomEvent2IntoEvent:event uiData2:@"uiDataValue2" uiData3:3];
[Adjust trackEvent:event];
Hashed email
You can attach a hashed email to every Criteo event. To do this, call the injectHashedEmailIntoCriteoEvents
method. The SDK will send a hashed email with every Criteo event throughout the app lifecycle. This means it will need to be set again when the app is re-launched. You can remove the hashed email by setting the injectHashedEmailIntoCriteoEvents
value to nil
.
ADJCriteo.injectHashedEmail(intoCriteoEvents: "8455938a1db5c475a87d76edacb6284e")
#import "ADJCriteo.h"
[ADJCriteo injectHashedEmailIntoCriteoEvents:@"8455938a1db5c475a87d76edacb6284e"];
Search dates
You can attach a check-in and check-out date to every Criteo event. To do this, call the injectViewSearchDatesIntoCriteoEvent
method. The SDK will send the dates with every Criteo event throughout the app lifecycle. This means you will need to set them again when the app is re-launched.
You can remove the search dates by setting the injectViewSearchDatesIntoCriteoEvent
values to nil
.
ADJCriteo.injectViewSearchDates(intoCriteoEvents: "2015-01-01", checkoutDate: "2015-01-07")
#import "ADJCriteo.h"
[ADJCriteo injectViewSearchDatesIntoCriteoEvents:@"2015-01-01" checkOutDate:@"2015-01-07"];
Partner ID
You can attach a partner ID to every Criteo event. To do this, call the injectPartnerIdIntoCriteoEvents
method. The SDK will send the partner ID with every Criteo throughout the app lifecycle. This means you will need to set it again when the app is re-launched.
You can remove the partner ID by setting the injectPartnerIdIntoCriteoEvents
value to null.
ADJCriteo.injectPartnerId(intoCriteoEvents: "{criteoPartnerId}"
#import "ADJCriteo.h"
[ADJCriteo injectPartnerIdIntoCriteoEvents:@"{criteoPartnerId}"];
Send deep link
You can add deep link information to Criteo events. To do this, call the injectDeeplinkIntoEvent
method with the event and URL.
func application( _ application: UIApplication?, open url: URL?, sourceApplication: String?, annotation: Any?) -> Bool { let event = ADJEvent(eventToken: "{deeplinkEventToken}")
ADJCriteo.injectDeeplink(into: event, url: url)
Adjust.trackEvent(event)
//...}
#import "ADJCriteo.h"
- (BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ ADJEvent *event = [ADJEvent eventWithEventToken:@"{deeplinkEventToken}"];
[ADJCriteo injectDeeplinkIntoEvent:event url:url];
[Adjust trackEvent:event];
//...}
Customer ID
You can attach a customer ID to every Criteo event. To do this, call the injectCustomerIdIntoCriteoEvents
method. The SDK will send the customer ID with every Criteo event throughout the app lifecycle. This means you will need to set them again when the app is re-launched.
You can remove the customer ID by setting the injectCustomerIdIntoCriteoEvents
value to nil.
ADJCriteo.injectCustomerId(intoCriteoEvents: "{CriteoCustomerId}")
#import "ADJCriteo.h"
[ADJCriteo injectCustomerIdIntoCriteoEvents:@"{CriteoCustomerId}"];
User segment
You can attach the user segment to every Criteo event. To do this, call the injectUserSegmentIntoCriteoEvents
method. The SDK will send the user segment with every Criteo event throughout the app lifecycle. This means you will need to set it again when the app is re-launched.
You can remove the user segment by setting the injectUserSegmentIntoCriteoEvents
value to nil.
ADJCriteo.injectUserSegment(intoCriteoEvents: "{CriteoUserSegment}")
#import "ADJCriteo.h"
[ADJCriteo injectUserSegmentIntoCriteoEvents:@"{CriteoUserSegment}"];