Data Integration and Services

Data Integration and Services root

This section contains information on various campus-available and campus-recommended resources for third-party data integration and services.


Data Integration and Services Sub-Topics

Google (Search, Analytics)

Google (Search, Analytics) root

The campus uses many of Google's services.


Google Service Sub-Topics

Google Analytics

Google Analytics root

A Step-by-Step Guide to Migrating to Google Analytics 4 (GA4) From Universal Analytics (UA)

A Step-by-Step Guide to Migrating to Google Analytics 4 (GA4) From Universal Analytics (UA) jtomasino3

In this step-by-step guide, we will walk you through the process of setting up a GA4 property, tracking it in parallel with an existing Universal Analytics property, and configuring it to track events, measure scroll depth, and measure engagement with embedded videos.

Overview of the Process:

  1. Getting Ready:
    Make sure your website is ready for the migration process by updating your Google Analytics module/plug-in, creating a GTM account and container, and installing or enabling GTM on your website.
  2. Setting Up and Connecting a GA4 Property:
    Create a GA4 property, set up basic configuration, create a data stream, and add the GA4 tracking code to your website.
  3. Configuring a GA4 Property:
    Increase data retention time, increase user engagement time, turn on enhanced measurement, and edit Site Search and Video Engagement if necessary.
  4. Check and Verify:
    Wait 24 hours and check Google Analytics to ensure that the data is being collected properly.

Chapter 1: Background

About GA4

GA4 is the latest version of Google Analytics. It's a major update to the previous version, Universal Analytics, and provides many new features and improvements to the way data is collected and analyzed.

GA4 differs from Universal Analytics in several ways:

  1. Data Collection Model:
    GA4 uses an event-based data model, which allows you to track user interactions on your website or app more granularly than in Universal Analytics. This means that you can track specific actions that users take on your website or app, such as clicks, page views, and video plays, rather than just tracking basic metrics like sessions and pageviews.
  2. Privacy and Consent:
    GA4 was designed with user privacy in mind and offers more options for users to control their data. GA4 includes features that help website owners comply with data privacy regulations like General Data Protection Regulation and California Consumer Privacy Act .
  3. AI-powered Insights:
    GA4 comes with built-in machine learning capabilities that use artificial intelligence to provide deeper insights into user behavior and trends. This allows you to gain a better understanding of how users interact with your website or app and make more informed decisions.
  4. E-commerce Tracking:
    GA4 includes more robust e-commerce tracking capabilities, allowing you to track specific actions such as product views, add-to-cart events, and purchases. This provides more detailed insights into the performance of your online store.
  5. Cross-device Tracking:
    GA4 provides a more accurate picture of how users interact with your website or app across multiple devices. This allows you to see how users move between devices and how their behavior changes as they interact with your brand across different channels.

Why Migrating Now to GA4 is Important

On July 1, 2023, Google will replace Universal Analytics with GA4.

After this date, website data will only be collected by GA4 tracking codes and Universal Analytics will no longer collect data. Google Analytics will let you view historical Universal Analytics reports until January 2024.

What If You Do Nothing?

If you don't create a GA4 property with basic settings, Google will create a new GA4 property for you. This new GA4 property will be connected to the corresponding Universal Analytics property.

However, since GA4 functions differently than Universal Analytics, you will lose a lot of reporting information with this automatic configuration.

For the best quality setup and the most historical data and insights, we recommend that you migrate your UA property to GA4 now.

Chapter 2: Getting Ready

Here’s a list of a few important tasks to complete before beginning the migration process:

  1. Check your website for the latest Google Analytics module
    To collect the most historical data, we recommend keeping your current Universal Analytics tracking code on your website and adding the new GA4 measurement ID so that they both track website traffic in parallel until UA is discontinued. To do this, you’ll need the latest version of the Google Analytics Module.
    • For WordPress sites (CampusPress).
      • CampusPress site has been updated with the latest module. Please skip this step.
    • For Drupal websites, go to the “Extend” menu and search for the Google Analytics module.
      1. If you find it, click the arrow, then select “Configure.”
         
      2. Check to see if there is an “Add another ID” button.
        Add ID button
         
      3. If the option to add another ID is missing, or if you do not have a Google Analytics module, you can:
        1. Ask your web developer to install the latest update from Georgia Tech’s theme.
           
        2. Or proceed by replacing your Universal Analytics tag with the GA4 measurement code. Please note that you may have a gap in data until you properly configure your GA4 account settings.
           
  2. Create a GTM Account and Container.
    While GTM is not required to use GA4, using GTM makes the process of implementing and managing event tracking on your website easier and more efficient. With GTM, you can set up and configure enhanced tracking without needing a web developer. If you don’t already have a GTM account, create one at tagmanager.google.com.
     
  3. Check your website for the GTM module and enter the Container ID.
    • For WordPress (CampusPress) websites.
      1. Navigate to the dashboard in the “Statistics + GTM” menu.
      2. In the “Google Tag Manager” block, click the "Activate” button.
      3. In the “Container ID” field, paste your GTM code and click “Save Changes.”
         
    • For Drupal sites:
      1. Navigate to “Extend.”
      2. Filter for “Google Tag Manager.”
      3. If the module is already on your site but not enabled, check the box, and click “Install.”
        gtm enabled
         
      4. If it is not in your modules list, ask your web developer to install it.
         
      5. After enabling the module, click the arrow and then the “Configure” button.
        screenshot of Google Analytics module configuration
         
      6. Click the link to the “Container Management Page.”
         
      7. Paste your GTM container code in the “Container ID” field and click “Save.”
        screenshot of the container ID field

Chapter 3: Setting Up and Connecting a GA4 Property

  1. Create a GA4 Property.
    Log in to your Google Analytics account, click on the "Admin" button and select "Create Property."
    1. Set up basic configuration.
      1. Enter a property name.
      2. Select the correct time zone, currency, business information.
      3. Click the “Create” button.
    2. Create a data stream.
      1. Choose from where you will be collecting data (the web, an Android app, or an iOS app).
      2. Enter your website URL and name.
      3. Click the “Create Stream” button.
         
  2. Add the GA4 tracking code to your website.
    Under "Data Streams,” click the arrow. View and copy the “Measurement ID Code.”
    1. For WordPress websites:
      1. Navigate to the dashboard in the “Statistics + GTM” menu.
      2. In the “Analytics Configuration” block, click the cog next to Google Analytics 4.
      3. In the “Measurement ID” field, copy and paste your GA4 code.
      4. Click “Save Changes.”
    2. For Drupal websites:
      1. Navigate to Google Analytics.
        1. Click the “Extend” menu link.
        2. Filter for Google Analytics.
      2. Add the GA4 code.
        1. Click the arrow next to the module name, then click the “Configure” button.
          module configuration
           
        2. On the configuration page, click the "Add Another ID" button.
           
        3. In the new field, paste the GA4 measurement ID from 2a., beginning with "G-"
          Google Analytics fields
           
      3. Save
        Click the blue "Save Configuration" button.
         
  3. Create a new tag in GTM.
    1. Log in to your account: tagmanager.google.com.
       
    2. Click the link for the container (website) you want to manage.
      Screenshot of workspace page
       
    3. Click “Add a New Tag.”
      Screenshot of New Tag option
       
    4. Name the new tag.
      Tag name field
       
    5. Add a tag type.
      1. In the “Tag Configuration” block, click the gray icon.
        Tag configuration icon
         
      2. Select "Google Analytics: GA4 Configuration" as the tag type.
        screenshot of GA4 Configuration option
         
      3. Input the GA4 measurement ID.
        screenshot of where to input the measurement ID
         
    6. Add a Trigger.
      1. In the Triggering box, click the gray icon.
        Gray icon in the Triggering box
         
      2. Select “All Pages.”
        Screenshot of "Choose a Trigger," and the "All Pages" option.
    7. Save.
      Click the blue “Save” button in the top right corner.
       
    8. Submit and Publish.
      1. Click the blue “Submit” button.
      2. Name this version.
        In the field, describe the change you just made.
      3. Click the blue “Publish” button.
        Publish to send the changes to the live version of the website.

You are now connected to Google Analytics 4!

Chapter 5: Configuring a Google Analytics 4 Property

Out of the gate, a Google Analytics 4 property automatically tracks the following events:

  1. first_visit. This is the first time a user visits a website or launches an app.
     
  2. session_start. When a user engages with the app or website and starts a new session.
     
  3. user_engagement. This event is fired 10 seconds after the visitor has stayed on a page.

Recommended adjustments to make:

  • Increase Data Retention Time.
    Under “Data Settings,” select “Data Retention” and select “14 months” from the drop-down menu.
    screenshot of data retention settings
     
  • Turn on “Enhanced Measurement.”
    Under “Data Streams,” toggle on “Enhanced Measurements.”
    screenshot of "enhanced measurements" toggle on/off button.
     
  • Increase user engagement time.
    Under “Settings,” select “Adjust Session Timeout.” Increase “Adjust timer for engaged sessions” to 20 or 30 seconds.
     
  • Edit “Site Search” to correctly track internal search queries.
    Click “Show Advanced Settings.”
    • For Drupal sites, enter “Keys” in the Keyword Parameter Query field.
    • For WordPress, enter “s” in the Keyword Parameter Query field.
      site search settings in the Enhanced Measurement menu.
       
  • Edit “Video Engagement” if you use Vimeo on your site.
    You’ll need to edit “Video Engagement,” as it automatically measures YouTube videos, but not Vimeo.
     
  • Measure Different Scroll Depths
    To adjust the scroll depth in your GA4 account, follow these instructions: GA4 Scroll Depth.

Chapter 6: Check and Verify

Once you’ve completed all the steps above and updated your configurations, check Google Analytics in 24 hours to make sure the data is being collected properly.

Accessing BuzzAPI v3 Using PHP and Curl

Accessing BuzzAPI v3 Using PHP and Curl
Category
kp37
<?php
  
$username = 'USERNAME';
$password = 'PASSWORD';
$apiURL = "https://api.gatech.edu/apiv3/";
$schema = 'central.academics.course_catalog.classes';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $apiURL . $schema . '/search');
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array('api_app_id' => $username, 'api_app_password' => $password, 'api_request_mode' => 'sync', 'term_code' => '201805')));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$results = curl_exec($ch);

print_r($results);

 

LDAP (Lightweight Directory Access Protocol)

LDAP (Lightweight Directory Access Protocol) afrank30

This section contains information about Georgia Tech's LDAP system and ways of accessing it.


LDAP Sub-Topics

Finding GT Accounts Using the Public LDAP Server

Finding GT Accounts Using the Public LDAP Server afrank30

Example code of how to retrieve a person's gtaccount (gburdell1) using command line.

Start command

For each of the examples given below, the command will start with this line:

ldapsearch -x -LLL -h whitepages.gatech.edu -b "dc=whitepages,dc=gatech,dc=edu" 

For example, 

ldapsearch -x -LLL -h whitepages.gatech.edu -b "dc=whitepages,dc=gatech,dc=edu" mail=george.p.burdell@gatech.edu

Use email to find gtaccount

mail=george.p.burdell@gatech.edu

Use unique given or first name

givenName=Adelle

Use unique family/last or surname

sn=Vuchatu

Use part of full name

cn="*Frank,A*"

OR

cn="*Adelle*"

Other ldap variables

Whitepages also lets you narrow your search using other values, such as:

  • building: William C Wardlaw Center
  • telephoneNumber: 404-385-4275
  • displayName OR cn: Burdell,George P
  • title: Web Developer Sr [job title]
  • objectClass: luPerson
  • primaryUid OR uid: gburdell1
  • postalAddress: 0181 [campus mail code]
  • ou: Institute Communications [department]

Sensitive Data Considerations

Sensitive Data Considerations afrank30
Tags

This section provides information and links to policies, checklists, and best-practices about storing and transmitting data that might be sensitive (FERPA, HIPAA, SSN, birthdates, etc).

Social Media (Facebook, Twitter, etc.)

Social Media (Facebook, Twitter, etc.)
Category
root

Social media services are very popular these days and can be a big help in connecting with your desired audience.  Setting up and managing a social media account is beyond the scope of this article, but below you will find documentation on integrating social media into your websites.

Pulling Social Media into Sites

Facebook

There are various tools available for integrating Facebook into a website.  Some plugins or modules will let you enter the ID number of a page and can then pull in the posts from that page, showing them on a dynamically generated page of your website (quite commonly the front page).  It is also possible for a Facebook page administrator to generate a widget (a short blob of HTML and/or JavaScript code) that can be pasted into a website to embed a series of recent posts from that Facebook page.

Embedding directly from Facebook using their code is likely to be the most stable method in the long-term, but does require both access to the Facebook page (to generate the embed code), and the ability to post pure HTML and JavaScript to the website in question (some Drupal site configurations on campus disallow this by default).

Do note that in early 2018 Facebook placed much stronger restrictions on public access to feeds, breaking many older plugins and modules that let you provide Facebook feeds on websites.  If you are looking at modules or plugins for this purpose, make sure they've been updated by the maintainer since April of 2018, and be aware that some features you used to be able to use prior to the spring of 2018 are no longer available.

Twitter/X

Everything mentioned for Facebook in the previous section applies to Twitter with one bonus:  anyone can generate embed code for any publicly visible Twitter account.  Just visit the Twitter Publication site, enter the ID of the account you want to embed a timeline from, and follow the resulting instructions.

Editor's note: Twitter has evolved greatly over the course of 2023, and most embed tools no longer work with Twitter.

Other Social Media Integrations

Two other social media integrations are possible: pushing posts to social media accounts, and providing "share to" buttons on your site.

Pushing posts to social media requires a module or plugin specific to the content management system you are using.  When configured correctly, you would be able to make a new blog-style post to your website, and it would be automatically copied to the associated social media account.  In theory, you can set up multiple integrations of this type as long as you can find a suitable module or plugin for each social media service with which you want to integrate.

Adding "share to" buttons is a bit easier, and could be done manually on each page.  However, since this takes a lot of time and effort, there are modules and plugins to add these buttons for you.  Just search in the plugin or module repository for your content system on the phrase "Share to XXX" where "XXX" is the name of the social media service you use.

Social Media Caveats

It should go without saying that social media services can update their systems and APIs at any time.  Usually they will give plenty of warning, but ultimately it's their network and they can change it as they wish (see the caveat about Facebook and Twitter/X above as an example).  When such changes occur, expect to have to update any associated modules or plugins, which may stop working until you do update them.  There's a greater chance that embeds generated directly from the social media service will be supported indefinitely, but even they may have to eventually be updated if the service decides to completely end support for an older API that they are using.

The other caveat is to remember (and to warn your stakeholders) that pulling from (or pushing to) social media is a matter of dealing with an outside service not controlled by Georgia Tech, so it is subject to downtime by the service provider or network failures anywhere along the way.  Thus, it is to be expected that embeded social media feeds may not show up correctly 100% of the time.