Skip to content

Commit 61773e7

Browse files
committed
Merge pull request #101 from adjust/criteo_update
Criteo update
2 parents 930311f + b3d7281 commit 61773e7

File tree

3 files changed

+60
-35
lines changed

3 files changed

+60
-35
lines changed

doc/criteo_plugin.md

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,6 @@ to `Copy items if needed` and select the radio button to `Create groups`.
1111

1212
Now you can integrate each of the different Criteo events, like in the following examples:
1313

14-
### View Search
15-
16-
```objc
17-
#import "ADJCriteo.h"
18-
19-
ADJEvent *event = [ADJEvent eventWithEventToken:@"{viewSearchEventToken}"];
20-
21-
[ADJCriteo injectViewSearchIntoEvent:event checkInDate:@"2015-01-01" checkOutDate:@"2015-01-07"];
22-
23-
[Adjust trackEvent:event];
24-
```
25-
2614
### View Listing
2715

2816
```objc
@@ -78,7 +66,8 @@ ADJCriteoProduct *product2 = [ADJCriteoProduct productWithId:@"productId2" price
7866
ADJCriteoProduct *product3 = [ADJCriteoProduct productWithId:@"productId3" price:50 quantity:2];
7967
NSArray *products = @[product1, product2, product3];
8068
81-
[ADJCriteo injectTransactionConfirmedIntoEvent:event products:products customerId:@"customerId1"];
69+
[ADJCriteo injectTransactionConfirmedIntoEvent:event products:products
70+
transactionId:@"transactionId1" customerId:@"customerId1"];
8271
8372
[Adjust trackEvent:event];
8473
```
@@ -153,5 +142,17 @@ The hashed email can be removed by setting the `injectHashedEmailIntoCriteoEvent
153142
```objc
154143
#import "ADJCriteo.h"
155144
156-
AdjustCriteo.injectHashedEmailIntoCriteoEvents("8455938a1db5c475a87d76edacb6284e");
145+
[ADJCriteo injectHashedEmailIntoCriteoEvents:@"8455938a1db5c475a87d76edacb6284e"];
146+
```
147+
148+
### Search dates
149+
150+
It's possible to attach a check-in and check-out date to every Criteo event with the `injectViewSearchDatesIntoCriteoEvent` method. The dates will be sent with every Criteo event for the duration of the application lifecycle, so it must be set again when the app is re-lauched.
151+
152+
The search dates can be removed by setting the `injectViewSearchDatesIntoCriteoEvents` dates with `nil`.
153+
154+
```objc
155+
#import "ADJCriteo.h"
156+
157+
[ADJCriteo injectViewSearchDatesIntoCriteoEvents:@"2015-01-01" checkOutDate:@"2015-01-07"];
157158
```

plugin/ADJCriteo.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@
2727

2828
@interface ADJCriteo : NSObject
2929

30-
+ (void)injectViewSearchIntoEvent:(ADJEvent *)event
31-
checkInDate:(NSString *)din
32-
checkOutDate:(NSString *)dout;
33-
3430
+ (void)injectViewListingIntoEvent:(ADJEvent *)event
3531
productIds:(NSArray *)productIds
3632
customerId:(NSString *)customerId;
@@ -45,6 +41,7 @@
4541

4642
+ (void)injectTransactionConfirmedIntoEvent:(ADJEvent *)event
4743
products:(NSArray *)products
44+
transactionId:(NSString *)transactionId
4845
customerId:(NSString *)customerId;
4946

5047
+ (void)injectUserLevelIntoEvent:(ADJEvent *)event
@@ -69,4 +66,7 @@
6966
customerId:(NSString *)customerId;
7067

7168
+ (void)injectHashedEmailIntoCriteoEvents:(NSString *)hashEmail;
69+
70+
+ (void)injectViewSearchDatesIntoCriteoEvents:(NSString *)checkInDate
71+
checkOutDate:(NSString *)checkOutDate;
7272
@end

plugin/ADJCriteo.m

Lines changed: 41 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,26 +40,21 @@ + (ADJCriteoProduct *) productWithId:(NSString *)productId
4040
@implementation ADJCriteo
4141

4242
static NSString * hashEmailInternal;
43+
static NSString * checkInDateInternal;
44+
static NSString * checkOutDateInternal;
4345

4446
+ (id<ADJLogger>) logger {
4547
return ADJAdjustFactory.logger;
4648
}
4749

48-
+ (void)injectHashEmail:(ADJEvent *)event {
49-
if (hashEmailInternal == nil) {
50-
return;
51-
}
52-
[event addPartnerParameter:@"criteo_email_hash" value:hashEmailInternal];
53-
}
54-
5550
+ (void)injectViewSearchIntoEvent:(ADJEvent *)event
5651
checkInDate:(NSString *)din
5752
checkOutDate:(NSString *)dout
5853
{
5954
[event addPartnerParameter:@"din" value:din];
6055
[event addPartnerParameter:@"dout" value:dout];
6156

62-
[ADJCriteo injectHashEmail:event];
57+
[ADJCriteo injectOptionalParams:event];
6358
}
6459

6560
+ (void)injectViewListingIntoEvent:(ADJEvent *)event
@@ -71,7 +66,7 @@ + (void)injectViewListingIntoEvent:(ADJEvent *)event
7166
NSString * jsonProductsIds = [ADJCriteo createCriteoVLFromProducts:productIds];
7267
[event addPartnerParameter:@"criteo_p" value:jsonProductsIds];
7368

74-
[ADJCriteo injectHashEmail:event];
69+
[ADJCriteo injectOptionalParams:event];
7570
}
7671

7772
+ (void)injectViewProductIntoEvent:(ADJEvent *)event
@@ -81,7 +76,7 @@ + (void)injectViewProductIntoEvent:(ADJEvent *)event
8176
[event addPartnerParameter:@"customer_id" value:customerId];
8277
[event addPartnerParameter:@"criteo_p" value:productId];
8378

84-
[ADJCriteo injectHashEmail:event];
79+
[ADJCriteo injectOptionalParams:event];
8580
}
8681

8782
+ (void)injectCartIntoEvent:(ADJEvent *)event
@@ -93,19 +88,21 @@ + (void)injectCartIntoEvent:(ADJEvent *)event
9388
NSString * jsonProducts = [ADJCriteo createCriteoVBFromProducts:products];
9489
[event addPartnerParameter:@"criteo_p" value:jsonProducts];
9590

96-
[ADJCriteo injectHashEmail:event];
91+
[ADJCriteo injectOptionalParams:event];
9792
}
9893

9994
+ (void)injectTransactionConfirmedIntoEvent:(ADJEvent *)event
10095
products:(NSArray *)products
96+
transactionId:(NSString *)transactionId
10197
customerId:(NSString *)customerId
10298
{
10399
[event addPartnerParameter:@"customer_id" value:customerId];
100+
[event addPartnerParameter:@"transaction_id" value:transactionId];
104101

105102
NSString * jsonProducts = [ADJCriteo createCriteoVBFromProducts:products];
106103
[event addPartnerParameter:@"criteo_p" value:jsonProducts];
107104

108-
[ADJCriteo injectHashEmail:event];
105+
[ADJCriteo injectOptionalParams:event];
109106
}
110107

111108
+ (void)injectUserLevelIntoEvent:(ADJEvent *)event
@@ -117,7 +114,7 @@ + (void)injectUserLevelIntoEvent:(ADJEvent *)event
117114
NSString * uiLevelString = [NSString stringWithFormat:@"%lu",(unsigned long)uiLevel];
118115
[event addPartnerParameter:@"ui_level" value:uiLevelString];
119116

120-
[ADJCriteo injectHashEmail:event];
117+
[ADJCriteo injectOptionalParams:event];
121118
}
122119

123120
+ (void)injectUserStatusIntoEvent:(ADJEvent *)event
@@ -127,7 +124,7 @@ + (void)injectUserStatusIntoEvent:(ADJEvent *)event
127124
[event addPartnerParameter:@"customer_id" value:customerId];
128125
[event addPartnerParameter:@"ui_status" value:uiStatus];
129126

130-
[ADJCriteo injectHashEmail:event];
127+
[ADJCriteo injectOptionalParams:event];
131128
}
132129

133130
+ (void)injectAchievementUnlockedIntoEvent:(ADJEvent *)event
@@ -137,7 +134,7 @@ + (void)injectAchievementUnlockedIntoEvent:(ADJEvent *)event
137134
[event addPartnerParameter:@"customer_id" value:customerId];
138135
[event addPartnerParameter:@"ui_achievmnt" value:uiAchievement];
139136

140-
[ADJCriteo injectHashEmail:event];
137+
[ADJCriteo injectOptionalParams:event];
141138
}
142139

143140
+ (void)injectCustomEventIntoEvent:(ADJEvent *)event
@@ -147,7 +144,7 @@ + (void)injectCustomEventIntoEvent:(ADJEvent *)event
147144
[event addPartnerParameter:@"customer_id" value:customerId];
148145
[event addPartnerParameter:@"ui_data" value:uiData];
149146

150-
[ADJCriteo injectHashEmail:event];
147+
[ADJCriteo injectOptionalParams:event];
151148
}
152149

153150
+ (void)injectCustomEvent2IntoEvent:(ADJEvent *)event
@@ -161,14 +158,41 @@ + (void)injectCustomEvent2IntoEvent:(ADJEvent *)event
161158
NSString * uiData3String = [NSString stringWithFormat:@"%lu",(unsigned long)uiData3];
162159
[event addPartnerParameter:@"ui_data3" value:uiData3String];
163160

164-
[ADJCriteo injectHashEmail:event];
161+
[ADJCriteo injectOptionalParams:event];
165162
}
166163

167164
+ (void)injectHashedEmailIntoCriteoEvents:(NSString *)hashEmail
168165
{
169166
hashEmailInternal = hashEmail;
170167
}
171168

169+
+ (void)injectViewSearchDatesIntoCriteoEvents:(NSString *)checkInDate
170+
checkOutDate:(NSString *)checkOutDate
171+
{
172+
checkInDateInternal = checkInDate;
173+
checkOutDateInternal = checkOutDate;
174+
}
175+
176+
+ (void)injectOptionalParams:(ADJEvent *)event {
177+
[ADJCriteo injectHashEmail:event];
178+
[ADJCriteo injectSearchDates:event];
179+
}
180+
181+
+ (void)injectHashEmail:(ADJEvent *)event {
182+
if (hashEmailInternal == nil) {
183+
return;
184+
}
185+
[event addPartnerParameter:@"criteo_email_hash" value:hashEmailInternal];
186+
}
187+
188+
+ (void)injectSearchDates:(ADJEvent *)event {
189+
if (checkInDateInternal == nil || checkOutDateInternal == nil) {
190+
return;
191+
}
192+
[event addPartnerParameter:@"din" value:checkInDateInternal];
193+
[event addPartnerParameter:@"dout" value:checkOutDateInternal];
194+
}
195+
172196
+ (NSString*) createCriteoVBFromProducts:(NSArray*) products
173197
{
174198
if (products == nil) {

0 commit comments

Comments
 (0)