Last active
November 5, 2019 21:05
-
-
Save zuzannamj/2ba025799432ee82d0971bc038e11d16 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <script runat="server"> | |
| Platform.Load("core","1.1"); | |
| try{ | |
| //Set time range of retrieved tracking data | |
| var filter = { | |
| Property: "EventDate", | |
| SimpleOperator: "between", | |
| Value: ["2016-01-01T00:00:00.000Z", "2017-01-01T00:00:00.000Z"] | |
| }; | |
| //Set Data Extension properties | |
| var fields = [ | |
| { "Name" : "SendID", "FieldType" : "Number"}, | |
| { "Name" : "SubscriberKey", "FieldType" : "Text", "MaxLength" : 50 }, | |
| { "Name" : "EventDate", "FieldType" : "Date", "Ordinal" : 2 }, | |
| { "Name" : "EventType", "FieldType" : "Text", "MaxLength" : 50 }, | |
| { "Name" : "TriggeredSendDefinitionObjectID", "FieldType" : "Text", "MaxLength" : 50 }, | |
| { "Name" : "BatchID", "FieldType" : "Number"}, | |
| { "Name" : "ClientID", "FieldType" : "Number"} | |
| ] | |
| var SentEventDE = { | |
| "CustomerKey" : "01_SentEvent", | |
| "Name" : "01_SentEvent", | |
| "Fields" : fields | |
| }, | |
| OpenEventDE = { | |
| "CustomerKey" : "02_OpenEvent", | |
| "Name" : "02_OpenEvent", | |
| "Fields" : fields | |
| }, | |
| ClickEventDE = { | |
| "CustomerKey" : "03_ClickEvent", | |
| "Name" : "03_ClickEvent", | |
| "Fields" : fields | |
| }, | |
| BounceEventDE = { | |
| "CustomerKey" : "04_BounceEvent", | |
| "Name" : "04_BounceEvent", | |
| "Fields" : fields | |
| }, | |
| UnsubEventDE = { | |
| "CustomerKey" : "05_UnsubEvent", | |
| "Name" : "05_UnsubEvent", | |
| "Fields" : fields | |
| }; | |
| //Create Data Extensions | |
| var SentDE = DataExtension.Add(SentEventDE), | |
| OpenDE = DataExtension.Add(OpenEventDE), | |
| ClickDE = DataExtension.Add(ClickEventDE), | |
| BounceDE = DataExtension.Add(BounceEventDE), | |
| UnsubDE = DataExtension.Add(UnsubEventDE); | |
| //Initiate WSProxy | |
| var prox = new Script.Util.WSProxy(); | |
| //Set columns to retrieve | |
| var cols = ["SendID","SubscriberKey","EventDate","EventType","TriggeredSendDefinitionObjectID","BatchID","Client.ID"]; | |
| //Initiate data extensions | |
| var logSentData = DataExtension.Init("01_SentEvent"), | |
| logOpenData = DataExtension.Init("02_OpenEvent"), | |
| logClickData = DataExtension.Init("03_ClickEvent"), | |
| logBounceData = DataExtension.Init("04_BounceEvent"), | |
| logUnsubData = DataExtension.Init("05_UnsubEvent"); | |
| //Set a loop to iterate through the five objects | |
| var objectType = ["SentEvent", "OpenEvent", "ClickEvent", "BounceEvent", "UnsubEvent"]; | |
| var j; | |
| for (j = 0; j < 5; j++) { | |
| var object = objectType[j], | |
| moreData = true, | |
| reqID = null, | |
| numItems = 0; | |
| //Retrieve data using pagination and insert data into respective Data Extensions | |
| while(moreData) { | |
| moreData = false; | |
| var data = reqID == null ? | |
| prox.retrieve(object, cols, filter): | |
| prox.getNextBatch(object, reqID); | |
| if(data != null) { | |
| moreData = data.HasMoreRows; | |
| reqID = data.RequestID; | |
| if(data && data.Results) { | |
| for(var i=0; i< data.Results.length; i++) { | |
| var dataFields = [{SendID: data.Results[i].SendID, SubscriberKey: data.Results[i].SubscriberKey, EventDate: data.Results[i].EventDate, EventType: data.Results[i].EventType, TriggeredSendDefinitionObjectID: data.Results[i].TriggeredSendDefinitionObjectID, BatchID: data.Results[i].BatchID, ClientID: data.Results[i].Client.ID}]; | |
| if (object == "SentEvent") { | |
| logSentData.Rows.Add(dataFields) | |
| } | |
| else if (object == "OpenEvent") { | |
| logOpenData.Rows.Add(dataFields) | |
| } | |
| else if (object == "ClickEvent") { | |
| logClickData.Rows.Add(dataFields) | |
| } | |
| else if (object == "BounceEvent") { | |
| logBounceData.Rows.Add(dataFields) | |
| } | |
| else if (object == "UnsubEvent") { | |
| logUnsubData.Rows.Add(dataFields) | |
| }; | |
| numItems++; | |
| } | |
| } | |
| } | |
| Write("<br>" + numItems + " records inserted to " + object + " Data Extension.<br>"); | |
| } | |
| } | |
| }catch(e){ | |
| Write(Stringify(e)); | |
| } | |
| </script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment