Ticket

Web client integration can be done via GTM Tag or by adding inline JavaScript.

API Base URL

Testing:

https://winfluenced-pixel-rvlaoxgvjq-ey.a.run.app

Test Api Swagger Url:

https://winfluenced-pixel-rvlaoxgvjq-ey.a.run.app/swagger/index.html

Sample Client script

/* Datalayer Start */
const data_layer = {
    customer_no: {{GTM Variable - Customer No}},
    pnr: {{GTM Variable - PNR Number }},
    ticket_no: {{GTM Variable - Ticket Number }},
    origin_destination: {{GTM Variable - Origin Destination }},
    ticket_items: {{GTM Variable -  Ticket Items }}
    total_discount: {{GTM Variable - Ticket Total Discount}},
    shipping_amount: {{GTM Variable -  Shipping Amount}},
    total_tax: {{GTM Variable - Ticket Total Tax}},
    total_amount: {{GTM Variable - Ticket Total Amount}},
    payment_currency: {{GTM Variable - Ticket Payment Currency Code}},
    affiliate_currency: {{GTM Variable - Ticket Affiliate Currency Code}},
    voucher_code: {{GTM Variable -  Voucher / Coupon Code}},
    user_type: {{GTM Variable - Customer / User Type}},
    sales_channel: {{GTM Variable - Sales Channel}}
};
/* Datalayer End */

(function sendConversion() {
    function getAdpCookieValue(cookieName, i) {
        const cookieValue = document.cookie.match(`(^|;)\\s*${cookieName}\\s*=\\s*([^;]+)`);
        var values = (cookieValue ? cookieValue.pop() : '').split('_');
        return (values.length >= i) ? values[i] : '';
    }

    const conversion_data = {
        "transactionId": getAdpCookieValue("_adp", 0), // ClickID reads from _adp cookie
        "offerId": getAdpCookieValue("_adp", 1),  // OfferID reads from _adp cookie
        "advertiserId": "000", // Replace with the brand Advertiser ID provided by Adpartners
        "goalName": null, // Replace with the brand Goal ID provided by Adpartners
        "customerNo": data_layer.customer_no,
        "pnr": data_layer.pnr,
        "ticketNo": data_layer.ticket_no,
        "originDestination": data_layer.origin_destination,
        "ticketItems": [],
        "totalDiscount": data_layer.total_discount,
        "totalShippingAmount": data_layer.shipping_amount,
        "totalTax": data_layer.total_tax,
        "totalAmount": data_layer.total_amount,
        "paymentCurrencyCode": data_layer.paymnet_currency,
        "affiliateCurrencyCode": data_layer.affiliate_currency,
        "voucherCode": data_layer.voucher_code,
        "userType": data_layer.user_type,
        "salesChannel": data_layer.sales_channel
    }
    for (i = 0; i < data_layer.ticket_items.length; i++) {
        conversion_data.ticketItems.push({
            "productId": data_layer.ticket_items[i].id,
            "fullRoute": data_layer.ticket_items[i].fullRoute,
            "cabinClass": data_layer.ticket_items[i].cabinClass,
            "fareFamily": data_layer.ticket_items[i].fareFamily,
            "firstFlightDate": data_layer.ticket_items[i].firstFlightDate,
            "routeType": data_layer.ticket_items[i].routeType,
            "tripType": data_layer.ticket_items[i].tripType,
            "companyName": data_layer.ticket_items[i].companyName,
            "quantity": data_layer.ticket_items[i].quantity,
            "unitePrice": data_layer.ticket_items[i].unitePrice,
            "uniteDiscount": data_layer.ticket_items[i].uniteDiscount
        });
    }

    fetch('{API Base URL}/api/pixel/ticket', {
        method: "POST",
        body: JSON.stringify(conversion_data),
        headers: {
            "Content-Type": "application/json"
        },
    });

})();

Conversion Endpoint: Conversion pixel will send a post request with conversion data the following API method. You may find the schema and field properties bellow.

Create Conversion API Action

Conversion tracking for ticket transactions.

post
Body
transactionIdstring | nullableOptional

Click - Transaction Id

advertiserIdstring | nullableOptional

Advertiser Adpartners ID

offerIdstring | nullableOptional

Offer id, (Optional)

goalNamestring | nullableOptional

Category base, commission goal name, (Optional)

customerNostring | nullableOptional

Member/Customer/User number (Optional)

pnrstring | nullableOptional

Flight PNR number

ticketNostring | nullableOptional

Flight Ticket number

originDestinationstring | nullableOptional

PNR Main Origin and Destination {SAW-ESB}

totalDiscountnumber · float | nullableOptional

Ticket total discount

totalShippingAmountnumber · float | nullableOptional

Ticket total shipping amount

totalTaxnumber · float | nullableOptional

Ticket total tax

totalAmountnumber · float | nullableOptional

Revenue Ticket total amount, (include tax shipping and discounts)

paymentCurrencyCodestring | nullableOptional

Ticket Currency TRY,USD,EUR ...

originCurrencyCodestring | nullableOptional

Original Ticket Currency TRY,USD,EUR ...

affiliateCurrencyCodestring | nullableOptional

Affiliate Revenue Currency TRY,USD,EUR ...

voucherCodestring | nullableOptional

Ticket coupon code

userTypestring | nullableOptional

New or existing user

salesChannelstring | nullableOptional

Sales channel; web, ios and android

Responses
200

Success

No content

post
POST /api/pixel/ticket HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 620

{
  "transactionId": "text",
  "advertiserId": "text",
  "offerId": "text",
  "goalName": "text",
  "customerNo": "text",
  "pnr": "text",
  "ticketNo": "text",
  "originDestination": "text",
  "ticketItems": [
    {
      "productId": "text",
      "fullRoute": "text",
      "cabinClass": "text",
      "fareFamily": "text",
      "firstFlightDate": "text",
      "routeType": "text",
      "tripType": "text",
      "companyName": "text",
      "quantity": 1,
      "unitePrice": 1,
      "originPrice": 1,
      "uniteDiscount": 1
    }
  ],
  "totalDiscount": 1,
  "totalShippingAmount": 1,
  "totalTax": 1,
  "totalAmount": 1,
  "paymentCurrencyCode": "text",
  "originCurrencyCode": "text",
  "affiliateCurrencyCode": "text",
  "voucherCode": "text",
  "userType": "text",
  "salesChannel": "text"
}
200

Success

No content

Last updated